openssl生成加密的私鑰(windows使用openssl生成公鑰和私鑰)
2023-04-30 13:30:22 1
本文首先簡單介紹一下openssl。接著描述如何在windows環境下簡單使用openssl,並生成公鑰和私鑰。最後介紹使用了RSA非對稱加密傳輸應用實例的微信小程序:密碼盾。
一、openssl簡介
openssl是一個安全套接字層密碼庫,囊括了主要的密碼算法、常用密鑰、證書封裝管理功能及實現ssl協議。開發的應用程式可以使用它來進行安全通信,避免竊聽,同時確認另一端連接者的身份。它廣泛被應用在網際網路的網頁伺服器上。
二、windows中安裝OpenSSL
為了方便,這裡直接下載安裝包,打開連結:http://slproweb.com/products/Win32OpenSSL.html
根據自己的系統類型點擊下載,我下載的是Win64 OpenSSL v3.0.5
一直點擊下一步就可以了。
如圖所示,安裝過程中會顯示安裝目錄為:C:\Program Files\OpenSSL-Win64
三、生成公鑰和私鑰
公鑰和私鑰一般應用於非對稱加密。這兩貨是一對,而且兩者的數值是不一樣的。神奇之處就在於:我用公鑰加密後,只有用私鑰才能解密,所以相對於對稱加密,非對稱加密更具安全!私鑰一般掌握在自己手中,不在網絡上傳播,而公鑰則可以對外發布。
下面介紹如何生成公鑰和私鑰
1)打開openssl安裝目錄:C:\Program Files\OpenSSL-Win64\bin
2)按住 Shift 滑鼠右鍵,調出 Powershell 窗口
3)測試一下,輸出openssl版本
./openssl version
4)輸入命令生成私鑰
./openssl genrsa -out 1.txt
5)從私鑰文件中生成公鑰
./openssl rsa -in 1.txt -out 2.txt -pubout
私鑰的值如下:
-----BEGIN PRIVATE KEY-----MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDZd4ff4I70d5j28kX0EKCLDruAIlGfxDexy8AXhyzWu1l hCveLFrbbt61A6MqcJbqnAJzeVtmBmXOw0SY0QcOIEQfbJISFrv24WCb3KVcJbUO4er5bRJP Kreh0kUHa9r8Lo54CfLB3RlArnC8WeKZGfoK2b9axxL6LwMDtWoS6fSY0XKrLnPeqIMOwGktH3Y3yrogBjjYsUo v1YBUgzeIzSVTPr6yIgC8zPoWfBYE1EqsXizHUam60B4wX3 pC5pNXKrgCmW0wa5QS224Pt5KoF5fOK2fBtvR nTvQTp8iD66vWi7hGNxEhbvEhGcZOGIt196V12TVoxlgUM6 lAgMBAAECggEAQyVkp0wzZ6l76hfxYIQ3xegFHfG6yT1xQu0aAUnEHwNXBTjzQJTqcuGfUz3txf9goc0M9rGsdmqYScjCJ/s2lfaBgkBoM7ygSgDZ7xYoWrTr3E4GWwCCDH5H6BDWkCcAULBSF et8cL5/exjBh26riEFckrgcHP/lzKjyYdVEjLER2RUiPOZPf6qrC7aQZGJP/35oC5R0BsBs 0h8am1h5k6V5arsDORL9JrgUy0DHtVcxInEaYso8RksC0UWwjm PFPV3rrPOxvdGyoM9t/Th9H2Gj39IUTUVIzuQbRaF63Ei4fPLDU11vphgo1ad fc79c9rwP1QEgYEoPG8p0SwKBgQDtfyCyCevYBKDRIwlJUFScJS0VB2IN46N3ntZ9bOVBBFJg7GSCw2/7P9LDBw1TI9czTENTJl2H8HXY8ZUtXg5TDINZET0bqxKtbGMZX7k57X5yGikzjYgGwND aebeBDqY0OJN3s9dMPZb0Z/BAoXfYa3LrtI5X2bN8K32khCvjwKBgQDqaOky0s kr8w6Cvwcr1aNxk1urmtFcp72g5XI9jfXWMLsw/p0gryT/hCz3HnTQf6BAGX0HuZJB an753jh8JNerm7g50mvl B0fKtJc 1F08pjzw8c1dRHJSFWDhN1hco Gf1u1051wtfez5kIhTk6eOdS9lQEJcJaOVV07dTiwKBgD2icGnECWDWUqXz4cUVA BCBaEfeWMBYLr6jc fIx/sbzSYJL2K2tTpi1jxy5N4CbFWaWJ64msVDIBwsbZEYpNK/AtxXdqAWyiGqHE9VmSiLd6Oy4KFiHe4MoTUFwYnMs3V5 UtncMhoc3SaRM BGAkiWYCyKv7BkML4xnKbmohAoGAR2GdKdniW18hTMeNkFqge9nYOI0qo2JNH/pgAWthA9XGvfzL5vDs5hAnG 5WtstQ6g2p/lXugGzEg31HUkNEGv31UzG4CFVOliTNxoZOIvIvLBOvHyVsgIm4fIap1qIMOXCzj7P3pqZikzfffvSV8kN7CapQSb5TkAz UU2AdRMCgYA48ZbZsYymzBrMmsXD63kyOr7ARZ1oKZFUSGbO8QOSBZ4x6OCZfqC2kcS9aodag1Djgwjol wgrIKpUOGdokqiJ5RnZRA2N8jbc7wSJ1EwqXkWUBpryJKC0x4JOdWWGwWAjQz1OtfFhzMOsZ3VvRYNKNy/tna1P4SSB0V9v2BsYw==-----END PRIVATE KEY-----
公鑰的值如下:
-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2XeH3 CO9HeY9vJF9BCgiw67gCJRn8Q3scvAF4cs1rtZfoQr3ixa227etQOjKnCW6pwCc3lbZgZlzsNEmNEHDiBEH2ySEha79uFgm9ylXCW1DuHq W0ST/iq3odJFB2va/C6OeAnywd0ZQK5wvFnimRn6Ctm/WscS i8DA7VqEun0mNFyqy5z3qiDDsBpLR92N8q6IAY42LFKPr9WAVIM3iM0lUz6 siIAvMz6FnwWBNRKrF4sx1GputAeMF9/qQuaTVyq4ApltMGuUEttuD7eSqBeXzitnwbb0fp070E6fIg ur1ou4RjcRIW7xIRnGThiLdfelddk1aMZYFDOvpQIDAQAB-----END PUBLIC KEY-----
可以看到私鑰和公鑰都是以BEGIN....以及...END 結尾,這是OpenSSL使用PEM(Privacy Enhanced Mail)格式來存放信息,是OpenSSL默認採用的信息存放方式。
四、RSA非對稱應用實例
微信小程序(密碼盾)集成了開心一刻、程式設計師計算器、密碼箱、習慣打卡、還款提醒、倒數紀念日、日記本、備忘錄、日程提醒共9大模塊功能。
在用戶登陸之時,用戶端和服務端分別生成公鑰和私鑰,並且分別交換公鑰,私鑰則牢牢掌握在各自手中,禁止在網絡中傳播。在後續的數據交互過程中均應用了RSA非對稱加密技術,輔助以數字籤名、時間戳等手段,充分保證訪問接口的安全。
1)點擊密碼箱,進入密碼箱主界面。當前無密碼記錄。點擊右下角 跳轉至增加界面。
2)分別輸入帳號和密碼,在密碼欄右邊還有個隨機按鈕,每點擊一次,可以隨機生成複雜的密碼作為參考,對於我這種難以設置什麼數字作為密碼的人來說,這個功能是個福音。
3)點擊左上角,彈出密碼分類,這個分類也是可以設置的,這裡就不再細說了。
4)點擊帳號和密碼記錄,可以直接進行複製
最喜歡密碼盾以下幾個功能。
1、不用再費腦子想設置什麼密碼,直接點擊隨機,幫助你生成複雜的密碼作為參考
2、修改一次密碼後,舊密碼依然有保留,這有時候也大有用處。
3、點擊帳號和密碼記錄,可以直接進行複製,大大方便了操作!
,