在《Java實現RSA密鑰對並在加解密、加簽驗簽中應用的實例》中,我們有用Java代碼生成RSA密鑰對,其實在Linux操作系統中,用openssl也是很容易生成密鑰對的。
一.如果在ubuntu上要使用openssl的話需要先進行安裝
命令如下:
sudo apt-get install openssl
安裝完成就可以使用openssl了。
二.進入openssl的交互界面,在命令行了輸入openssl即可
1.生成RSA私鑰
該命令會生成1024位的私鑰,生成成功的界面如上所示。
genrsa -out rsa_private_key.pem 1024
此時我們就可以在當前路徑下看到rsa_private_key.pem文件了,如下所示:
2.把RSA私鑰轉換成PKCS8格式
輸入命令如下命令回車
pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
得到生成功的結果,這個結果就是PKCS8格式的私鑰,如下圖:
3.生成RSA公鑰
輸入如下命令並回車
rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
得到生成成功的結果,如下圖:
此時,我們可以看到一個文件名為rsa_public_key.pem的文件,打開它,可以看到-----BEGIN PUBLIC KEY-----開頭,-----END PUBLIC KEY-----結尾的沒有換行的字符串,這個就是公鑰,如下所示:
附:但在有些時候,我們需要的公鑰不是上面格式的,如下所示的公鑰格式是sftp時需要的格式
此時,我們需要通過如下Linux命令生成:
ssh-keygen -t rsa -f key ssh-keygen -e -f key.pub > key_ss2.pub
具體使用實例如下所示: