RSA祕鑰對

原文鏈接:https://blog.csdn.net/hustpzb/article/details/72734578

概述
RSA被稱爲非對稱性加密算法,意思就是加密和解密用的不是同一份密鑰。RSA算法的密鑰分爲公鑰和私鑰,兩者內容不同,用途也不同。公鑰用於加密,一般交給客戶端使用;私鑰用於解密,一般由服務器管理。反過來,對稱性加密算法,指的就是用同一份密鑰進行加密解密了,比如DES加密算法。


生成密鑰對:


在使用RSA加密解密之前,首先要生成密鑰對。RSA算法的密鑰可以通過兩個途徑生成,一是藉助openssl命令終端,二是使用代碼生成

1、Openssl生成密鑰對


首先你得安裝Openssl,這裏就不再敘述如何安裝Openssl了,正好給你個機會去撩一下度娘。

第一步,生成私鑰。現在我們找到openssl安裝目錄的bin文件夾,雙擊打開openssl.exe,輸入命令

genrsa -out rsa_private_key.pem 1024

在openssl.exe的同級目錄下可以找到生成的私鑰文件rsa_private_key.pem,打開後看到的內容類似下面

-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQC7yil5BUsHf+PdPl9fzdr3FNyrXDPJwV8Vfk3hCsiqs3YzHYjE
YpHZiaF8dg9wB/aqmKRA0KFH2eTv++GNf0fAtdfbZUeq1Y79BDs23kSoS6g0Xe8m
D76A2oD+G0o/llsBjpmWViFaCre0uALyOwd412pU7yj+IJU+JlNlxLapNwIDAQAB
AoGAH0C+9DgwS3g6WQjXYJ9m8LYVH6PBrrMy+uXBWlGsIdSqOEmTCHQLJ/Qi3w7a
9N8uayfqNitCnC2kT1hRKnZjX2Miy0LCfLsH6REV1NUgSmC7lr/TKkq9Hnvp1Y0H
bi7u5ux6QUzY8Yb7f6go7rAk764EikV8QeuRKsQP0jaPIckCQQDg8yyWlsWL298C
sn15tQAqmNI8kWpmOmZuvNE0oTzodsMCfi0K3e5c3KtHUgso1hPWTxJguRpWw1jS
4NsoYWJTAkEA1bXlP1vHF4DW9XjoE/VSb3ReUXvqCx96IrdxcKXKOPrNsGOpKBkL
3x74jImXjIiSEe4ePvOHsQ5HgB9scPlJDQJATcrKuKkbV+qJjN09F0HI9PI0gk2n
hgLcOZ+CmbjI33typQINgZyOOf72HIv63/xoj8x4hop82VRk+0hXgfdrkQJABQFo
qC4/IIbNAhzd2rHRR3kDSIdNeQs4sh1307qeXO1K6gm7iYvkoko4ahpC6XC9cxwP
q0vK7tO1ywNxZ8f+9QJAO2sXpLl4G/I0xrizv9Yoe7MON+8CsMXIUb0Swf3Q4Bbj
YNWXYD1BBa1qkIQU48dLgbJU24Abzl57nkSN/nns4A==
-----END RSA PRIVATE KEY-----

請忽略帶有虛線的第一行和最後一行,中間的內容就是我們的私鑰了。

 

 

第二步,生成公鑰。繼續在openssl終端窗口輸入命令:

rsa -in rsa_private_key.pem -out rsa_public_key.pem -pubout  

這裏根據私鑰數據,生成了公鑰,同樣也是保存在openssl.exe同級目錄下,打開看裏面的內容:

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7yil5BUsHf+PdPl9fzdr3FNyr
XDPJwV8Vfk3hCsiqs3YzHYjEYpHZiaF8dg9wB/aqmKRA0KFH2eTv++GNf0fAtdfb
ZUeq1Y79BDs23kSoS6g0Xe8mD76A2oD+G0o/llsBjpmWViFaCre0uALyOwd412pU
7yj+IJU+JlNlxLapNwIDAQAB
-----END PUBLIC KEY-----

 

到這裏,密鑰對基本生成了,但是這個密鑰對的私鑰無法在代碼中直接使用,需要對私鑰進行PKCS#8編碼,繼續敲命令:

pkcs8 -topk8 -in rsa_private_key.pem -out pkcs8_rsa_private_key.pem -nocrypt

同樣在openssl.exe同級目錄下找到文件pkcs8_rsa_private_key.pem,這裏就是我們最終需要的私鑰了。

下面可以看到內容跟rsa_private_key.pem裏面的內容是不一樣的:

-----BEGIN PRIVATE KEY-----
MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALvKKXkFSwd/490+
X1/N2vcU3KtcM8nBXxV+TeEKyKqzdjMdiMRikdmJoXx2D3AH9qqYpEDQoUfZ5O/7
4Y1/R8C119tlR6rVjv0EOzbeRKhLqDRd7yYPvoDagP4bSj+WWwGOmZZWIVoKt7S4
AvI7B3jXalTvKP4glT4mU2XEtqk3AgMBAAECgYAfQL70ODBLeDpZCNdgn2bwthUf
o8GuszL65cFaUawh1Ko4SZMIdAsn9CLfDtr03y5rJ+o2K0KcLaRPWFEqdmNfYyLL
QsJ8uwfpERXU1SBKYLuWv9MqSr0ee+nVjQduLu7m7HpBTNjxhvt/qCjusCTvrgSK
RXxB65EqxA/SNo8hyQJBAODzLJaWxYvb3wKyfXm1ACqY0jyRamY6Zm680TShPOh2
wwJ+LQrd7lzcq0dSCyjWE9ZPEmC5GlbDWNLg2yhhYlMCQQDVteU/W8cXgNb1eOgT
9VJvdF5Re+oLH3oit3Fwpco4+s2wY6koGQvfHviMiZeMiJIR7h4+84exDkeAH2xw
+UkNAkBNysq4qRtX6omM3T0XQcj08jSCTaeGAtw5n4KZuMjfe3KlAg2BnI45/vYc
i/rf/GiPzHiGinzZVGT7SFeB92uRAkAFAWioLj8ghs0CHN3asdFHeQNIh015Cziy
HXfTup5c7UrqCbuJi+SiSjhqGkLpcL1zHA+rS8ru07XLA3Fnx/71AkA7axekuXgb
8jTGuLO/1ih7sw437wKwxchRvRLB/dDgFuNg1ZdgPUEFrWqQhBTjx0uBslTbgBvO
XnueRI3+eezg
-----END PRIVATE KEY-----

 

2、代碼生成密鑰對

原文鏈接:https://blog.csdn.net/hustpzb/article/details/72734578

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章