[英]Is it possible to generate a RSA key-pair from a password in Rust-openssl?
客戶端將其私鑰存儲在本地並用於對發送到服務器的消息進行簽名,服務器將用戶的公鑰存儲在數據庫中以驗證來自客戶端的消息。
這是我的問題,如果客戶端由於某些意外(例如硬盤被損壞)丟失了私鑰,它將永遠無法連接到服務器(除非致電服務器管理員重置其密鑰)。
所以我在想,如果有一種算法可以從密碼(可以保存在客戶端的人腦中)生成確定性的 RSA 密鑰對,那么上面提到的問題將被消除。
可以使用 Rust-openssl 實現這樣的算法嗎?
這樣做基本上歸結為使用密碼作為輸入來播種偽隨機數生成器。 相同的種子將產生相同的偽隨機數。 可以在此處找到確定性地生成素數(將用於最終生成 RSA 密鑰)的示例。 如果這是一個單一用途的獨立可執行文件,那么您可以執行RSA_generate_key_ex
,否則編寫一個 RSA 密鑰生成器(使用 BN 函數)並導入密鑰。
查看 dOpenSSL: https : //github.com/bernardoaraujor/dopenssl.rs
它由一些 OpenSSL 功能的確定性實現組成,即:
我開始這個存儲庫作為練習。 我也在維護https://github.com/bernardoaraujor/dopenssl (fork),它是用 C 編寫的。
我在 dopenssl.rs 中的目標是使用bindgen
自動生成 Rust Wrappers。 dOpenSSL 功能穩定,但 Rust Wrappers 仍在開發中。
歡迎投稿。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.