快捷搜索:  汽车  科技

openssl加密库说明(短文真够劲儿openssl生成公钥私钥)

openssl加密库说明(短文真够劲儿openssl生成公钥私钥)生成公钥。公钥要用刚才生成的私钥生成。公钥可以在网络上进行传输而不担心其泄露。好比一把钥匙一把锁。单独把钥匙拿走或者把锁拿走,找不到另一半,加密的字符串,是不能被破解的。运行上述指令。将会在当前目录中生成一个 RSA.private 文件。至于为什么叫这个名字?因为好记。本质上这是一个文本文件。openssl genrsa -out rsa.private 1024想要生成长度。更小的密钥,把后面的1024改为512就可以啦!理论上可以调整为比512更小的数值,但是不推荐。仅支持512,758,1024,1536,2048几个固定的数值长度不要随便写哦。俗话说,一寸长一寸强,一寸短一寸险。字符串长度越长,加密强度越大,破解的难度就越高。

我是@程序员小助手 Rman,继Xman,Ironman,Superman之后又一个实力派man。

引言

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

openssl加密库说明(短文真够劲儿openssl生成公钥私钥)(1)

Linux

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

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

openssl genrsa -out rsa.private 1024

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

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

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

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

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

openssl rsa -in rsa.private -out rsa.public -pubout -outform PEM

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

windows

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

openssl.exe genrsa -out rsa.private 1024 openssl.exe rsa -in rsa.private -out rsa.public -pubout -outform PEM

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

实操

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

下面生成的这个是私钥。

-----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-----

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

-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDbSmlzll/Wshw06S4DdhwwcWsa nSibfjwaq888CPNic0/7Xq7VRytNerQeDW8G3todF6fMJSIroFRd0v7Af12P7qX ubOqJts/NLA7/W3GhJ8wt2T8L0ThYzb2S8GyRGHsP/iGemVx3UuB1ajRhUBJfsi5 yQw8LqT5hEYG4nk0twIDAQAB -----END PUBLIC KEY-----

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

写在最后

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

Happy coding :)

猜您喜欢: