当前位置: 首页 > news >正文

使用OpenSSL生成PKCS#12格式的证书和私钥

要使用OpenSSL生成PKCS12格式的证书和私钥,可以按照以下步骤进行操作:

1. 安装OpenSSL

首先,确保已在计算机上安装了OpenSSL。可以从OpenSSL官方网站(https://www.openssl.org/)下载并安装适用于您的操作系统的版本。这里简单总结下在 Windows 上安装 OpenSSL 步骤。

1.1 下载 OpenSSL

从 OpenSSL 官方网站(https://www.openssl.org/)下载最新版本的 OpenSSL。

1.2 安装 OpenSSL

运行下载的 OpenSSL 安装程序,并按照提示进行操作。在默认情况下,OpenSSL 将安装在 `C:\Program Files\OpenSSL` 目录下。

1.3 配置系统环境变量

在 Windows 操作系统中,需要将 OpenSSL 的路径添加到系统的环境变量中,以便能够从任何位置执行 OpenSSL 命令。请按照以下步骤进行操作:

   a. 右键单击“计算机”或“我的电脑”,然后选择“属性”。

   b. 点击“高级系统设置”,在弹出的对话框中选择“环境变量”。

   c. 在“系统变量”下找到“Path”变量并双击编辑。

   d. 在变量值的末尾输入 OpenSSL 的安装路径,例如 `;C:\Program Files\OpenSSL\bin`(请注意分号和路径中的空格)。然后点击“确定”。

1.4 验证安装

打开命令提示符并运行以下命令来验证是否成功安装了 OpenSSL:

openssl version

如果看到输出的 OpenSSL 版本号,则说明 OpenSSL 已成功安装并配置。


2. 生成私钥

打开终端或命令提示符,并运行以下命令来生成私钥文件:

openssl genpkey -algorithm RSA -out private.key

这将生成一个名为private.key的私钥文件。


3. 生成证书签名请求(CSR)

使用生成的私钥,运行以下命令生成CSR文件:

openssl req -new -key private.key -out csr.csr

这里将需要提供一些与证书相关的信息,例如组织名称、通用名称等。根据提示输入所需信息。


4. 自签名证书

如果您想生成自签名证书,可以使用以下命令生成证书:

openssl x509 -req -days 3650 -in csr.csr -signkey private.key -out certificate.crt

这将生成一个名为certificate.crt的自签名证书文件,并且该证书将在3650天后过期。您可以根据需要调整有效期限。


5. 生成PKCS12文件

现在,使用以下命令将私钥和证书合并到PKCS12文件中。这里有两种方式设置口令:

5.1 自定义口令方式

openssl pkcs12 -export -out certificate.p12 -inkey private.key -in certificate.crt

您将被要求设置一个密码以保护PKCS12文件。

5.2 强制口令方式

强制设置密码长度不是一个好的做法,因为这降低了密码的安全性。如果您坚持要设置8个1作为密码,可以使用以下命令:

openssl pkcs12 -export -out certificate.p12 -inkey private.key -in certificate.crt -passout pass:11111111

该命令将从名为 `private.key` 的私钥文件和名为 `certificate.crt` 的证书文件中生成一个 `.p12` 文件,并设置密码为八个数字 1。

    请注意,强制要求密码长度为 8 位数字并不是一种好的做法,因为这使得密码更容易被猜测或破解。建议您使用更长、更复杂的密码,并遵循最佳实践以确保密码的安全性。


6.使用 OpenSSL 查看 .p12 文件的内容

使用 OpenSSL 工具来查看 .p12 文件的内容。按以下步骤进行操作:

  • 打开终端或命令提示符,并导航到包含.p12文件的目录。
  •  运行以下命令来查看 .p12 文件的内容:

openssl pkcs12 -info -in certificate.p12

   此命令将显示 .p12文件中包含的证书和私钥的详细信息,例如颁发机构、有效期限等。

  查看刚才产生的certificate.p12文件内容如下:


E:\RJ\openssl\installed\OpenSSL-Win64\bin>
E:\RJ\openssl\installed\OpenSSL-Win64\bin>openssl pkcs12 -info -in certificate.p12
Enter Import Password:
MAC: sha256, Iteration 2048
MAC length: 32, salt length: 8
PKCS7 Encrypted data: PBES2, PBKDF2, AES-256-CBC, Iteration 2048, PRF hmacWithSHA256
Certificate bag
Bag AttributeslocalKeyID: AF C4 DE AF A0 97 88 29 AB 3E 45 B2 AE 50 E5 85 47 E7 27 77
subject=C = CN, ST = SC, L = CD, O = CETCCST, OU = CETCCST, CN = CETCCST
issuer=C = CN, ST = SC, L = CD, O = CETCCST, OU = CETCCST, CN = CETCCST
-----BEGIN CERTIFICATE-----
MIIDQTCCAikCFCbkxe+aDst30+2ajis12WN5oq3oMA0GCSqGSIb3DQEBCwUAMF0x
CzAJBgNVBAYTAkNOMQswCQYDVQQIDAJTQzELMAkGA1UEBwwCQ0QxEDAOBgNVBAoM
B0NFVENDU1QxEDAOBgNVBAsMB0NFVENDU1QxEDAOBgNVBAMMB0NFVENDU1QwHhcN
MjMxMjE3MDUzNzM3WhcNMjQxMjE2MDUzNzM3WjBdMQswCQYDVQQGEwJDTjELMAkG
A1UECAwCU0MxCzAJBgNVBAcMAkNEMRAwDgYDVQQKDAdDRVRDQ1NUMRAwDgYDVQQL
DAdDRVRDQ1NUMRAwDgYDVQQDDAdDRVRDQ1NUMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEApCugCrfRarsT6hVxQiBGdFokur5VOVPyy9Hvfp4AM7SGZnHL
d38IByXWzSqgqbrD+hamKEY77X33/oWueSFB7tFd5Vxspydv6dfCqxRVTp35AyNj
0dzmitjcazNRphqeM/XAqTot95p6fJpykdHWT0v1ekYZyH58ilhxLM+Y24FILVAs
NCsOsSwXIpNzPOwJfIyE2tGGPE4RXVpaysRiPYx9LzwzHwpA6o7AZfl20w1IPNTy
6Ov+spOcDnq5/wmIBcfKxyiQNUM68Sni9FtC/5UjmigsnHDCj3dZKsPQgGf1DYBZ
TiV5DwOpuQA7q3+hUwMaCRZqZG4NDN+27ok9SwIDAQABMA0GCSqGSIb3DQEBCwUA
A4IBAQAsfajDkA5maKJZxW/Gl3hL0gIij6j346lf9RWJMnUX6SDc0mtpg033CzPN
Y3H4Is1VQ7vBMWVZqCQmfQgdmL9UTl8oGprsi3srhjRRWqxslivX+5bAa7f/lIcR
qk8N42CXJ6w+IkyHKArBEG21iz/nLbb2OVcvPu3tVO/I0GLjVjdwr0FJ6GnBH+vv
0QhjKZLR8zCAKhbplqX0pWIMuZdsrekoU/lRTVwGvB0G3oK3HW9EXMmUDiHcPPhC
W16/0zsIHwRfRm6GjuiTHXZxamX9Nnbw5G3BETjdKJdvXwcDl+veZUzl1pOAnutG
VipTLXifLFCD7lADMyIxQV7xcPiX
-----END CERTIFICATE-----
PKCS7 Data
Shrouded Keybag: PBES2, PBKDF2, AES-256-CBC, Iteration 2048, PRF hmacWithSHA256
Bag AttributeslocalKeyID: AF C4 DE AF A0 97 88 29 AB 3E 45 B2 AE 50 E5 85 47 E7 27 77
Key Attributes: <No Attributes>
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFLTBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQIXS7Sp38x+fECAggA
MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAEqBBAX7BUqc2Kea7pInSH0lXkSBIIE
0J3i5GBSxn6QAhfWcaJJjTL/YBVPT5Cc4WpLWXwsKK5DDTeVFbt4DcEqAvcNPf0k
0KdSUvCWrWH28JKJ0r5TEnwAUiXbjfK6Kd5dBV25lN43/3ZaAWs/aP/y909bvCja
xQtdpSyF6IyajgFCnolqed6PCoY3fT/CzFzgFxiFNDyjaI8ZLYz7Oe3ihuTqfJwD
a/B+7y/KEf3EKpaEwpNRk2aju7ucs9jZB870XzLgmHB3ABsGLD1q10W5wGDyvQPk
D+0QSAN587BuyG6L4uUVPiKBIK+BIYVWCjHF97stCNBa+obCwktZpfeZvwNkLsiH
mY57y4Tkuu6Kqacdfe5qKCQdYF6illp5UtNx5JODB9T4iSxqKMsGErW04i/SXs9r
RyOZpZB824SD4WpOXFoo1lwU0M8rYbWhnH393CRp9ffjhPk5iK+qvLAuDgMiTRhf
0ophKnMbpqKmtyEfsZ+XVta8+W3pSdtzw71Am8dadtlzAo8J60IWwZdEWrJ82tIk
BRl2Lrt3hKfyuTkhMW69q4790hg5gHL4iBy+A3fatJizUFgd+V/fp3Pe6rq22ReB
Y+S4d9RKgEiKlZzPZiuUXr2pMVHVLo3jNDORckv7Ec/VlSpKbbUDDrNo/EtUf9+r
y3wxnymV3RPtmCeIHpKDJg2NXTlRcYdn+01WPc8AOPZ7r46ehQ49EEiOGqX09rDO
SlX3e4UNbte1x/bR6GWJ+EwjWpo4AcLJ5O28jJXUP1ZFpNrdddobRES7QaHIGity
+QYb+aet0D5Cpx+Ygq9+RumEG+j3dd9CrK+r7lMUhejAFYms1NSDXL5g0jjflutM
McWZVMqR+179+PeDl+ykLeVa08zVqIBwn3L16Jpjx/fjsGkPr+rWmpHvMdT6r5lI
IKJhOgqFpF3NMoq2GTXwzrPMxruwXszkUB1NfSJluuG1imNk6hL4IwEpzKN+lcZ2
tDkyc/IGPG9o0O08qgjuQHAoNvK70kRCCqzy9OF8HnKe63n0aX0In0FVGGTIchjm
89/MsGVTKihK+rOyDgCWYhWil9fNhuHt+qdNPXMTvuNkqdDe2XulnN9xkQ8UCXlv
T8GnaBv0GkspgNXABFQ7cvDSSAmrtr+9QvGuEgUOSVvSk8+n5eMOdfD/M4916ezw
Wpo01kgHjptPjpZWveS2spB7VQiNGIEbhU2msmk8ZbQ/F0olzJ/KMWoUgZfl+RLA
5yTlWTEW+dobliWcHLJX/TAyeBICzLU5mPRyE0b3btim9vHVFreC4TWS+sfHiocC
uNvPX0J7XAYvQY188Oq/EbPp8CSRB2Yu0LBS4ilVyooY8tdzVJ2d6aroA4YVSkMe
vM/RZnoLGsezkW+16mP1+TmHAWEk0gLc9BzToHRHI9WJJmv7D+p5XunaeSRSqYro
j8fQK0TrDSvfgHP5Asc1tziRRAUQ1cy9sQV1DUlPGzvRbpQD7RmNJ/yfUt94K2+X
6Vbo9Vgt/iTO9+pjzNRW05HwpkjPajBWNkbze95vSPVFIVhxrtS3tQlEyD26JHw3
6XJvtnOJaRTODUWloIsE7zhDxKk2YhqnlSqfIYzkA3fTGa6lgvIoDyuSv0Ln1g5C
uVwIOK+aag8w5nArZx6vGWulYwILVWEGT40u+GPedWs8
-----END ENCRYPTED PRIVATE KEY-----E:\RJ\openssl\installed\OpenSSL-Win64\bin>
  • 也可以通过运行以下命令来检查 .p12 文件的密码是否正确:

openssl pkcs12 -nokeys -info -in certificate.p12

   此命令将只显示证书的详细信息,而不会显示私钥信息。

注意:在运行这些命令之前,需要确保已安装 OpenSSL 工具。


7. 结束

现在,已经生成了一个名为certificate.p12的PKCS12文件,其中包含证书和私钥。

注意:

以上步骤仅提供了一个基本的示例。我们可以根据需要进行更多的配置和调整。此外,如果您具有可用的CA证书和私钥,可以使用类似的命令生成PKCS12文件。确保妥善保管和保护您的私钥和证书。

————————————————————

DONE

相关文章:

使用OpenSSL生成PKCS#12格式的证书和私钥

要使用OpenSSL生成PKCS12格式的证书和私钥&#xff0c;可以按照以下步骤进行操作&#xff1a; 1. 安装OpenSSL 首先&#xff0c;确保已在计算机上安装了OpenSSL。可以从OpenSSL官方网站&#xff08;https://www.openssl.org/&#xff09;下载并安装适用于您的操作系统的版本。…...

超详细 | 哈里斯鹰优化算法原理、实现及其改进与利用(Matlab/Python)

测试函数为F9 在MATLAB中执行程序结果如下&#xff1a; 在Python中执行程序结果如下&#xff1a; 哈里斯鹰优化算法(Harris Hawks Optimization , HHO)是 Heidari等[1]于2019年提出的一种新型元启发式算法&#xff0c;设计灵感来源于哈里斯鹰在捕食猎物过程中的合作行为以及突…...

git 切换远程地址分支 推送到指定地址分支 版本回退

切换远程地址 1、切换远程仓库地址&#xff1a; 方式一&#xff1a;修改远程仓库地址 【git remote set-url origin URL】 更换远程仓库地址&#xff0c;URL为新地址。 git remote set-url https://gitee.com/xxss/omj_gateway.git 方式二&#xff1a;先删除远程仓库地址&…...

YOLOv3-YOLOv8的一些总结

0 写在前面 这个文档主要总结YOLO系列的创新点&#xff0c;以YOLOv3为baseline。参考(抄)了不少博客&#xff0c;就自己看看吧。有些模型的trick不感兴趣就没写进来&#xff0c;核心的都写了。 YOLO系列的网络都由四个部分组成&#xff1a;Input、Backbone、Neck、Prediction…...

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)控件的部分公共属性和事件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;控件的部分公共属性和事件 一、操作环境 操作系统: Windows 10 专业版 IDE:DevEco Studio 3.1 SDK:HarmonyOS 3.1 二、公共属性 常用的公共属性有&#xff1a; 宽(with)、高(height)、…...

最新同步云盘推荐:实现轻松管理与便捷同步的理想选择

同步云盘——可以轻松管理文件&#xff0c;同步不同设备之间的文件&#xff0c;受到了许多用户的青睐&#xff01;目前国内有什么值得推荐的同步云盘&#xff1f; Zoho Workdrive同步云盘&#xff0c;助您轻松管理文件&#xff0c;进行多设备同步&#xff0c;便捷使用文件&…...

(第27天)Oracle 数据泵转换分区表

在Oracle数据库中,分区表的使用是很常见的,使用数据泵也可以进行普通表到分区表的转换,虽然实际场景应用的不多。 创建测试表 sys@ORADB 2022-10-13 11:54:12> create table lucifer.tabs as select * from dba_objects;Table created.sys...

业务上需要顺序消费,怎么保证时序性?

消息传输和消费的有序性&#xff0c;是消息队列应用中一个非常重要的问题&#xff0c;在分布式系统中&#xff0c;很多业务场景都需要考虑消息投递的时序。例如&#xff0c;电商中的订单状态流转、数据库的 binlog 分发&#xff0c;都会对业务的有序性有要求。今天我们一起来看…...

ubuntu 开机提示 you are in emergency mode,journalctl -xb

进入系统界面 回车输入&#xff1a; journalctl -xb -p3 查看出问题的盘符类型。 然后 lsblk 查看挂载情况 我的是/dev/sda3没有挂载上&#xff0c;对应/home目录&#xff0c;注意这时候不要直接mount 需要先修复 fsck -y /dev/sda3等待修复完成&#xff0c;在重新挂载 moun…...

【Hadoop面试】HDFS读写流程

HDFS&#xff08;Hadoop Distributed File System&#xff09;是GFS的开源实现。 HDFS架构 HDFS是一个典型的主/备&#xff08;Master/Slave&#xff09;架构的分布式系统&#xff0c;由一个名字节点Namenode(Master) 多个数据节点Datanode(Slave)组成。其中Namenode提供元数…...

B01、JVM与Java体系结构-01

字节码与多语言混合编程 字节码概述&#xff1a; 我们平时说的java字节码&#xff0c;指的是用java语言编译成的字节码。准确的说任何能在jvm平台上执行的字节码格式都是一样的。所以应该统称为&#xff1a;jvm字节码。不同的编译器&#xff0c;可以编译出相同的字节码文件&…...

Python:Jupyter

Jupyter是一个开源的交互式计算环境&#xff0c;由Fernando Perez和Brian Granger于2014年创立。它提供了一种方便的方式来展示、共享和探索数据&#xff0c;并且可以与多种编程语言和数据格式进行交互。Jupyter的历史可以追溯到2001年&#xff0c;当时Fernando Perez正在使用P…...

macos苹果电脑开启tftp server上传fortigate60e固件成功

cat /System/Library/LaunchDaemons/tftp.plist<?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist…...

如何使用ArcGIS Pro裁剪影像

对影像进行裁剪是一项比较常规的操作&#xff0c;因为到手的影像可能是多种范围&#xff0c;需要根据自己需求进行裁剪&#xff0c;这里为大家介绍一下ArcGIS Pro中裁剪的方法&#xff0c;希望能对你有所帮助。 数据来源 本教程所使用的数据是从水经微图中下载的影像和行政区…...

Tekton 构建容器镜像

Tekton 构建容器镜像 介绍如何使用 Tektonhub 官方 kaniko task 构建docker镜像&#xff0c;并推送到远程dockerhub镜像仓库。 kaniko task yaml文件下载地址&#xff1a;https://hub.tekton.dev/tekton/task/kaniko 查看kaniko task yaml内容&#xff1a; 点击Install&…...

netty-daxin-4(httpwebsocket)

文章目录 学习链接http服务端NettyHttpServerHelloWorldServerHandler 客户端ApiPost websocket初步了解为什么需要 WebSocket简介 浏览器的WebSocket客户端客户端的简单示例客户端的 APIWebSocket 构造函数webSocket.readyStatewebSocket.onopenwebSocket.onclosewebSocket.ο…...

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《市场环境下考虑全周期经济效益的工业园区共享储能优化配置》

这个标题涉及到工业园区中共享储能系统的优化配置&#xff0c;考虑了市场环境和全周期经济效益。以下是对标题中各个要素的解读&#xff1a; 市场环境下&#xff1a; 指的是工业园区所处的商业和经济背景。这可能包括市场竞争状况、电力市场价格波动、政策法规等因素。在这一环…...

WPF——命令commond的实现方法

命令commond的实现方法 属性通知的方式 鼠标监听绑定事件 行为&#xff1a;可以传递界面控件的参数 第一种&#xff1a; 第二种&#xff1a; 附加属性 propa&#xff1a;附加属性快捷方式...

信息收集 - 域名

1、Whois查询: Whois 是一个用来查询域名是否已经被注册以及相关详细信息的数据库(如:域名所有人、域名注册商、域名注册日期和过期日期等)。通过访问 Whois 服务器,你可以查询域名的归属者联系方式和注册时间。 你可以在 域名Whois查询 - 站长之家 上进行在线查询。 2、…...

基于YOLOv8深度学习的路面标志线检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…...

OpenClaw+ollama-QwQ-32B内容处理:自动生成周报与会议纪要

OpenClawollama-QwQ-32B内容处理&#xff1a;自动生成周报与会议纪要 1. 为什么需要自动化内容处理工具 每周五下午三点&#xff0c;我的日历总会准时弹出"编写本周工作报告"的提醒。这个看似简单的任务&#xff0c;却常常让我陷入两难&#xff1a;要么花半小时手动…...

Linux文件系统架构与缓存机制解析

Linux文件系统架构与缓存机制深度解析1. 文件系统核心架构1.1 文件系统基本组织形式Linux文件系统采用分层结构设计&#xff0c;主要包含以下核心组件&#xff1a;块存储机制&#xff1a;硬盘被划分为固定大小的块&#xff08;默认4KB&#xff09;&#xff0c;文件数据分散存储…...

颠覆PDF转换体验:Marker无缝实现25页/秒全场景文档格式精准迁移

颠覆PDF转换体验&#xff1a;Marker无缝实现25页/秒全场景文档格式精准迁移 【免费下载链接】marker 一个高效、准确的工具&#xff0c;能够将 PDF 和图像快速转换为 Markdown、JSON 和 HTML 格式&#xff0c;支持多语言和复杂布局处理&#xff0c;可选集成 LLM 提升精度&#…...

从零开始:如何用开源方案打造你的第一台六足机器人

从零开始&#xff1a;如何用开源方案打造你的第一台六足机器人 【免费下载链接】hexapod 项目地址: https://gitcode.com/gh_mirrors/hexapod5/hexapod 想要亲手制作一台能够自如行走的六足机器人吗&#xff1f;hexapod开源项目为你提供了一套完整的免费解决方案&#…...

K230 vs树莓派视觉套件:300元预算该选谁?实测对比工业检测场景

K230与树莓派视觉套件&#xff1a;300元预算下的工业检测实战对比 在工业自动化浪潮中&#xff0c;视觉检测系统正从大型企业向中小型制造车间快速渗透。当预算被严格限制在300元区间时&#xff0c;K230开发板与树莓派摄像头组合成为最受关注的两种解决方案。我们历时三个月在6…...

根据您提供的写作范围,我为您总结的标题为:“昆通泰MCGS7.7嵌入版:6车位停车场监控系统仿...

6车位停车场监控系统昆通泰MCGS7.7嵌入版仿真运行带运行效果视频6车位停车场监控系统用昆通泰MCGS7.7嵌入版做仿真&#xff0c;真的是新手友好型项目——不用扛硬件、不用接复杂通讯&#xff0c;靠内部变量和几段脚本就能把核心逻辑跑通&#xff0c;还能直观看到实时效果&#…...

2026年03月26日全球AI前沿动态

一句话总结全球AI领域密集发布技术、产品、企业动态&#xff0c;覆盖通用/垂直大模型、专项技术、智能体、机器人、硬件基建等全赛道&#xff0c;中国AI在视频、音乐、办公智能体领域领跑&#xff0c;OpenAI关停Sora战略转型&#xff0c;Arm、苹果、腾讯等大厂新品落地&#xf…...

Qt实战:用QCustomPlot的QCPColorMap绘制声呐/热力图,附完整代码与色条(QCPColorScale)美化技巧

Qt实战&#xff1a;用QCustomPlot实现专业级声呐热力图可视化 第一次在项目中尝试用QCustomPlot绘制声呐数据时&#xff0c;我被它强大的性能震撼了——5000100的数据矩阵渲染仅需200毫秒&#xff0c;而Matplotlib处理同样规模的数据需要近3秒。这个发现让我彻底放弃了Python方…...

python基于微信小程序的智慧社区娱乐服务管理平台

目录需求分析与规划技术架构设计功能模块开发实时交互实现数据可视化测试与部署安全与优化迭代计划项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作需求分析与规划 明确平台核心功能&#xff1a;居民活动报名、场地预约、社区公…...

多模态扩展:OpenClaw+GLM-4.7-Flash处理图片信息

多模态扩展&#xff1a;OpenClawGLM-4.7-Flash处理图片信息 1. 为什么需要多模态能力 上周我在整理产品截图时遇到一个典型问题&#xff1a;需要从200多张UI截图中提取所有按钮文字和位置信息。手动操作不仅耗时&#xff0c;还容易遗漏细节。这让我开始思考——能否让OpenCla…...