前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >短文:真够劲儿!openssl生成公钥私钥,加密接口数据!这俩指令

短文:真够劲儿!openssl生成公钥私钥,加密接口数据!这俩指令

作者头像
程序员小助手
发布2020-04-30 16:12:17
2.2K0
发布2020-04-30 16:12:17
举报
文章被收录于专栏:程序员小助手程序员小助手

引言

要在Windows或Linux上执行以下操作,必须在系统上安装OpenSSL。

Linux

先从Linux说,因为用处最多,OpenSSL也是从这儿来的。

生成私钥,只需执行下面一行指令:

代码语言:javascript
复制
openssl genrsa -out rsa.private 1024

想要生成长度。更小的密钥,把后面的1024改为512就可以啦!

理论上可以调整为比512更小的数值,但是不推荐。仅支持512,758,1024,1536,2048几个固定的数值长度不要随便写哦。

俗话说,一寸长一寸强,一寸短一寸险。字符串长度越长,加密强度越大,破解的难度就越高。

运行上述指令。将会在当前目录中生成一个 rsa.private 文件。至于为什么叫这个名字?因为好记。本质上这是一个文本文件。

生成公钥。公钥要用刚才生成的私钥生成。公钥可以在网络上进行传输而不担心其泄露。好比一把钥匙一把锁。单独把钥匙拿走或者把锁拿走,找不到另一半,加密的字符串,是不能被破解的。

代码语言:javascript
复制
openssl rsa -in rsa.private -out rsa.public -pubout -outform PEM

同样的道理,执行上述指令将会在当前目录中生成一个 rsa.public 文件。文件内容就是公钥。

windows

OpenSSL也提供了windows下的安装包。同样需要在cmd命令行执行下面的指令。生成的步骤和方法与Linux下相同。我们不过多赘述。下面是两条指令,按顺序执行就可以了。

代码语言:javascript
复制
openssl.exe genrsa -out rsa.private 1024
openssl.exe rsa -in rsa.private -out rsa.public -pubout -outform PEM

没有什么好说的,一模一样。

实操

光说不练假把式,我们用上述指令生成一对公钥和秘钥。看看他们都长什么样。为了普遍用途起见,我们使用1024位加密长度。

下面生成的这个是私钥。

代码语言:javascript
复制
-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQDbSmlzll/Wshw06S4DdhwwcWsa+nSibfjwaq888CPNic0/7Xq7
VRytNerQeDW8G3todF6fMJSIroFRd0v7Af12P7qXubOqJts/NLA7/W3GhJ8wt2T8
L0ThYzb2S8GyRGHsP/iGemVx3UuB1ajRhUBJfsi5yQw8LqT5hEYG4nk0twIDAQAB
AoGACpjS9bn7kaVzxX7LMXGgtRqWAWy+/CZyVDPjmf9Ey6bwGzm/p5PaWeh0G3Tj
q95sHUUaWXkAhIZiS2yHaG7VL63BtBsXa/5NLPIRO7aXeNVRScWGzrxyd3SBscgb
KLXId/OvvhrH57MvEjF+Anqk4Gh+2FspfBKOJdwAYucIklECQQD4jE40Vown3pO5
l9fBeZu2f1OxDoaONhoJGBSzaFZf7OrAF6DjTviWKVs5XOwpMTdac8nNx/TBTTw+
/KxiwklfAkEA4d2LqM6Zxk8ZoyyeIA0cRarj1GqlivlI7jIYqK6nO+eRiE9VGSX0
dgkP2ctfckJlXtW3o9FQjt7wv+QoWR5bqQJBAMhK4NbCjA2xCyC74Y2zfy0xLHN5
fitqI88CTeRKB5kj5gVIxUmIoUD5MN9oJ5QGalIFDzI6md2QbSVhH1YytUcCQQC8
QGop3WC/r6f/n61/q024J1HS9rxZU6LcnTZ+SWurezuKMA0Oc9sIEk96yI4Z7osM
+vYffNM28UwZs/GJLctZAkEAu0HGDVmwc8ZZPXi5f6SfKteOS6dBm7jc6ZEUqTtc
6XckXhra2gsrMwpbswsSQ/Eh4u3TfeXW9AJXsmhAaXQsuw==
-----END RSA PRIVATE KEY-----

下面这行是用私钥生成的公钥文件内容:

代码语言:javascript
复制
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDbSmlzll/Wshw06S4DdhwwcWsa
+nSibfjwaq888CPNic0/7Xq7VRytNerQeDW8G3todF6fMJSIroFRd0v7Af12P7qX
ubOqJts/NLA7/W3GhJ8wt2T8L0ThYzb2S8GyRGHsP/iGemVx3UuB1ajRhUBJfsi5
yQw8LqT5hEYG4nk0twIDAQAB
-----END PUBLIC KEY-----

是不是超级简单快捷,就拥有了一对儿高强度的加密字符串?

写在最后

在应用程序中接口数据不想暴露给外部访问,但是又不想做单向加密,那么RSA的公钥私钥就派上大用场了,不对称加密就是这么好使。

Happy coding :)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员小助手 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • Linux
  • windows
  • 实操
  • 写在最后
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档