短文:真夠勁兒!openssl生成公鑰私鑰,加密接口數據!這倆指令

我是@程序員小助手 Rman,繼Xman,Ironman,Superman之後又一個實力派man。

引言

要在Windows或Linux上執行以下操作,必須在系統上安裝OpenSSL。

短文:真夠勁兒!openssl生成公鑰私鑰,加密接口數據!這倆指令

Linux

先從Linux說,因為用處最多,OpenSSL也是從這兒來的。

生成私鑰,只需執行下面一行指令:

<code>openssl genrsa -out rsa.private 1024/<code>

想要生成長度。更小的密鑰,把後面的1024改為512就可以啦!

理論上可以調整為比512更小的數值,但是不推薦。僅支持512,758,1024,1536,2048幾個固定的數值長度不要隨便寫哦。

俗話說,一寸長一寸強,一寸短一寸險。字符串長度越長,加密強度越大,破解的難度就越高。

運行上述指令。將會在當前目錄中生成一個 rsa.private 文件。至於為什麼叫這個名字?因為好記。本質上這是一個文本文件。

生成公鑰。公鑰要用剛才生成的私鑰生成。公鑰可以在網絡上進行傳輸而不擔心其洩露。好比一把鑰匙一把鎖。單獨把鑰匙拿走或者把鎖拿走,找不到另一半,加密的字符串,是不能被破解的。

<code>openssl rsa -in rsa.private -out rsa.public -pubout -outform PEM/<code>

同樣的道理,執行上述指令將會在當前目錄中生成一個 rsa.public 文件。文件內容就是公鑰。

windows

OpenSSL也提供了windows下的安裝包。同樣需要在cmd命令行執行下面的指令。生成的步驟和方法與Linux下相同。我們不過多贅述。下面是兩條指令,按順序執行就可以了。

<code>openssl.exe genrsa -out rsa.private 1024
openssl.exe rsa -in rsa.private -out rsa.public -pubout -outform PEM/<code>

沒有什麼好說的,一模一樣。

實操

光說不練假把式,我們用上述指令生成一對公鑰和秘鑰。看看他們都長什麼樣。為了普遍用途起見,我們使用1024位加密長度。

下面生成的這個是私鑰。

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

下面這行是用私鑰生成的公鑰文件內容:

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

是不是超級簡單快捷,就擁有了一對兒高強度的加密字符串?

寫在最後

在應用程序中接口數據不想暴露給外部訪問,但是又不想做單向加密,那麼RSA的公鑰私鑰就派上大用場了,不對稱加密就是這麼好使。

Happy coding :)


分享到:


相關文章: