百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

windows使用openssl生成公钥和私钥

liebian365 2025-01-01 21:25 23 浏览 0 评论

本文首先简单介绍一下openssl。接着描述如何在windows环境下简单使用openssl,并生成公钥和私钥。最后介绍使用了RSA非对称加密传输应用实例的微信小程序:密码盾。

一、openssl简介

openssl是一个安全套接字层密码库,囊括了主要的密码算法、常用密钥、证书封装管理功能及实现ssl协议。开发的应用程序可以使用它来进行安全通信,避免窃听,同时确认另一端连接者的身份。它广泛被应用在互联网的网页服务器上。

二、windows中安装openssl

为了方便,这里直接下载安装包,打开链接:http://slproweb.com/products/Win32OpenSSL.html

根据自己的系统类型点击下载,我下载的是Win64 OpenSSL v3.0.5

一直点击下一步就可以了。

如图所示,安装过程中会显示安装目录为:C:\Program Files\OpenSSL-Win64

三、生成公钥和私钥

公钥和私钥一般应用于非对称加密。这两货是一对,而且两者的数值是不一样的。神奇之处就在于:我用公钥加密后,只有用私钥才能解密,所以相对于对称加密,非对称加密更具安全!私钥一般掌握在自己手中,不在网络上传播,而公钥则可以对外发布。

下面介绍如何生成公钥和私钥

1)打开openssl安装目录:C:\Program Files\OpenSSL-Win64\bin

2)按住 Shift+鼠标右键,调出 Powershell 窗口

3)测试一下,输出openssl版本


 ./openssl version



4)输入命令生成私钥


 ./openssl genrsa -out 1.txt

5)从私钥文件中生成公钥

./openssl rsa -in 1.txt -out 2.txt -pubout



私钥的值如下:


-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDZd4ff4I70d5j2
8kX0EKCLDruAIlGfxDexy8AXhyzWu1l+hCveLFrbbt61A6MqcJbqnAJzeVtmBmXO
w0SY0QcOIEQfbJISFrv24WCb3KVcJbUO4er5bRJP+Kreh0kUHa9r8Lo54CfLB3Rl
ArnC8WeKZGfoK2b9axxL6LwMDtWoS6fSY0XKrLnPeqIMOwGktH3Y3yrogBjjYsUo
+v1YBUgzeIzSVTPr6yIgC8zPoWfBYE1EqsXizHUam60B4wX3+pC5pNXKrgCmW0wa
5QS224Pt5KoF5fOK2fBtvR+nTvQTp8iD66vWi7hGNxEhbvEhGcZOGIt196V12TVo
xlgUM6+lAgMBAAECggEAQyVkp0wzZ6l76hfxYIQ3xegFHfG6yT1xQu0aAUnEHwNX
BTjzQJTqcuGfUz3txf9goc0M9rGsdmqYScjCJ/s2lfaBgkBoM7ygSgDZ7xYoWrTr
3E4GWwCCDH5H6BDWkCcAULBSF+et8cL5/exjBh26riEFckrgcHP/lzKjyYdVEjLE
R2RUiPOZPf6qrC7aQZGJP/35oC5R0BsBs+0h8am1h5k6V5arsDORL9JrgUy0DHtV
cxInEaYso8RksC0UWwjm+PFPV3rrPOxvdGyoM9t/Th9H2Gj39IUTUVIzuQbRaF63
Ei4fPLDU11vphgo1ad+fc79c9rwP1QEgYEoPG8p0SwKBgQDtfyCyCevYBKDRIwlJ
UFScJS0VB2IN46N3ntZ9bOVBBFJg7GSCw2/7P9LDBw1TI9czTENTJl2H8HXY8ZUt
Xg5TDINZET0bqxKtbGMZX7k57X5yGikzjYgGwND+aebeBDqY0OJN3s9dMPZb0Z/B
AoXfYa3LrtI5X2bN8K32khCvjwKBgQDqaOky0s+kr8w6Cvwcr1aNxk1urmtFcp72
g5XI9jfXWMLsw/p0gryT/hCz3HnTQf6BAGX0HuZJB+an753jh8JNerm7g50mvl+B
0fKtJc+1F08pjzw8c1dRHJSFWDhN1hco+Gf1u1051wtfez5kIhTk6eOdS9lQEJcJ
aOVV07dTiwKBgD2icGnECWDWUqXz4cUVA+BCBaEfeWMBYLr6jc+fIx/sbzSYJL2K
2tTpi1jxy5N4CbFWaWJ64msVDIBwsbZEYpNK/AtxXdqAWyiGqHE9VmSiLd6Oy4KF
iHe4MoTUFwYnMs3V5+UtncMhoc3SaRM+BGAkiWYCyKv7BkML4xnKbmohAoGAR2Gd
KdniW18hTMeNkFqge9nYOI0qo2JNH/pgAWthA9XGvfzL5vDs5hAnG+5WtstQ6g2p
/lXugGzEg31HUkNEGv31UzG4CFVOliTNxoZOIvIvLBOvHyVsgIm4fIap1qIMOXCz
j7P3pqZikzfffvSV8kN7CapQSb5TkAz+UU2AdRMCgYA48ZbZsYymzBrMmsXD63ky
Or7ARZ1oKZFUSGbO8QOSBZ4x6OCZfqC2kcS9aodag1Djgwjol+wgrIKpUOGdokqi
J5RnZRA2N8jbc7wSJ1EwqXkWUBpryJKC0x4JOdWWGwWAjQz1OtfFhzMOsZ3VvRYN
KNy/tna1P4SSB0V9v2BsYw==
-----END PRIVATE KEY-----

公钥的值如下:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2XeH3+CO9HeY9vJF9BCg
iw67gCJRn8Q3scvAF4cs1rtZfoQr3ixa227etQOjKnCW6pwCc3lbZgZlzsNEmNEH
DiBEH2ySEha79uFgm9ylXCW1DuHq+W0ST/iq3odJFB2va/C6OeAnywd0ZQK5wvFn
imRn6Ctm/WscS+i8DA7VqEun0mNFyqy5z3qiDDsBpLR92N8q6IAY42LFKPr9WAVI
M3iM0lUz6+siIAvMz6FnwWBNRKrF4sx1GputAeMF9/qQuaTVyq4ApltMGuUEttuD
7eSqBeXzitnwbb0fp070E6fIg+ur1ou4RjcRIW7xIRnGThiLdfelddk1aMZYFDOv
pQIDAQAB
-----END PUBLIC KEY-----

可以看到私钥和公钥都是以BEGIN....以及...END 结尾,这是OpenSSL使用PEM(Privacy Enhanced Mail)格式来存放信息,是OpenSSL默认采用的信息存放方式。

四、RSA非对称应用实例

微信小程序(密码盾)集成了开心一刻、程序员计算器、密码箱、习惯打卡、还款提醒、倒数纪念日、日记本、备忘录、日程提醒共9大模块功能。

在用户登陆之时,用户端和服务端分别生成公钥和私钥,并且分别交换公钥,私钥则牢牢掌握在各自手中,禁止在网络中传播。在后续的数据交互过程中均应用了RSA非对称加密技术,辅助以数字签名、时间戳等手段,充分保证访问接口的安全。

1)点击密码箱,进入密码箱主界面。当前无密码记录。点击右下角+跳转至增加界面。

2)分别输入账号和密码,在密码栏右边还有个随机按钮,每点击一次,可以随机生成复杂的密码作为参考,对于我这种难以设置什么数字作为密码的人来说,这个功能是个福音。

3)点击左上角,弹出密码分类,这个分类也是可以设置的,这里就不再细说了。

4)点击账号和密码记录,可以直接进行复制

最喜欢密码盾以下几个功能。

1、不用再费脑子想设置什么密码,直接点击随机,帮助你生成复杂的密码作为参考

2、修改一次密码后,旧密码依然有保留,这有时候也大有用处。

3、点击账号和密码记录,可以直接进行复制,大大方便了操作!

相关推荐

“版本末期”了?下周平衡补丁!国服最强5套牌!上分首选

明天,酒馆战棋就将迎来大更新,也聊了很多天战棋相关的内容了,趁此机会,给兄弟们穿插一篇构筑模式的卡组推荐!老规矩,我们先来看10职业胜率。目前10职业胜率排名与一周前基本类似,没有太多的变化。平衡补丁...

VS2017 C++ 程序报错“error C2065:“M_PI”: 未声明的标识符"

首先,程序中头文件的选择,要选择头文件,在文件中是没有对M_PI的定义的。选择:项目——>”XXX属性"——>配置属性——>C/C++——>预处理器——>预处理器定义,...

东营交警实名曝光一批酒驾人员名单 88人受处罚

齐鲁网·闪电新闻5月24日讯酒后驾驶是对自己和他人生命安全极不负责的行为,为守护大家的平安出行路,东营交警一直将酒驾作为重点打击对象。5月23日,东营交警公布最新一批饮酒、醉酒名单。对以下驾驶人醉酒...

Qt界面——搭配QCustomPlot(qt platform)

这是我第一个使用QCustomPlot控件的上位机,通过串口精确的5ms发送一次数据,再将读取的数据绘制到图表中。界面方面,尝试卡片式设计,外加QSS简单的配了个色。QCustomPlot官网:Qt...

大话西游2分享赢取种族坐骑手办!PK趣闻录由你书写

老友相聚,仗剑江湖!《大话西游2》2021全民PK季4月激燃打响,各PK玩法鏖战齐开,零门槛参与热情高涨。PK季期间,不仅各种玩法奖励丰厚,参与PK趣闻录活动,投稿自己在PK季遇到的趣事,还有机会带走...

测试谷歌VS Code AI 编程插件 Gemini Code Assist

用ClaudeSonnet3.7的天气测试编码,让谷歌VSCodeAI编程插件GeminiCodeAssist自动编程。生成的文件在浏览器中的效果如下:(附源代码)VSCode...

顾爷想知道第4.5期 国服便利性到底需优化啥?

前段时间DNF国服推出了名为“阿拉德B计划”的系列改版计划,截至目前我们已经看到了两项实装。不过关于便利性上,国服似乎还有很多路要走。自从顾爷回归DNF以来,几乎每天都在跟我抱怨关于DNF里面各种各样...

掌握Visual Studio项目配置【基础篇】

1.前言VisualStudio是Windows上最常用的C++集成开发环境之一,简称VS。VS功能十分强大,对应的,其配置系统较为复杂。不管是对于初学者还是有一定开发经验的开发者来说,捋清楚VS...

还嫌LED驱动设计套路深?那就来看看这篇文章吧

随着LED在各个领域的不同应用需求,LED驱动电路也在不断进步和发展。本文从LED的特性入手,推导出适合LED的电源驱动类型,再进一步介绍各类LED驱动设计。设计必读:LED四个关键特性特性一:非线...

Visual Studio Community 2022(VS2022)安装图文方法

直接上步骤:1,首先可以下载安装一个VisualStudio安装器,叫做VisualStudioinstaller。这个安装文件很小,很快就安装完成了。2,打开VisualStudioins...

Qt添加MSVC构建套件的方法(qt添加c++11)

前言有些时候,在Windows下因为某些需求需要使用MSVC编译器对程序进行编译,假设我们安装Qt的时候又只是安装了MingW构建套件,那么此时我们该如何给现有的Qt添加一个MSVC构建套件呢?本文以...

Qt为什么站稳c++GUI的top1(qt c)

为什么现在QT越来越成为c++界面编程的第一选择,从事QT编程多年,在这之前做C++界面都是基于MFC。当时为什么会从MFC转到QT?主要原因是MFC开发界面想做得好看一些十分困难,引用第三方基于MF...

qt开发IDE应该选择VS还是qt creator

如果一个公司选择了qt来开发自己的产品,在面临IDE的选择时会出现vs或者qtcreator,选择qt的IDE需要结合产品需求、部署平台、项目定位、程序猿本身和公司战略,因为大的软件产品需要明确IDE...

Qt 5.14.2超详细安装教程,不会来打我

Qt简介Qt(官方发音[kju:t],音同cute)是一个跨平台的C++开库,主要用来开发图形用户界面(GraphicalUserInterface,GUI)程序。Qt是纯C++开...

Cygwin配置与使用(四)——VI字体和颜色的配置

简介:VI的操作模式,基本上VI可以分为三种状态,分别是命令模式(commandmode)、插入模式(Insertmode)和底行模式(lastlinemode),各模式的功能区分如下:1)...

取消回复欢迎 发表评论: