2017-03-09 225 views
0
var PassPhrase = "Rosy"; 

var Bits = 1024; 
dfRSAkey = cryptico.generateRSAKey(PassPhrase.toString(),Bits);      
dfPublicKeyString = cryptico.publicKeyString(dfRSAkey); 

我能夠加密「玫瑰」,我得到了公鑰dfPublicKeyString。 我想從我的公鑰dfPublicKeyString中找回「Rosy」。 另外我怎麼能從我的公鑰dfPublicKeyString得到dfRSAkey。我該怎麼做?我正在使用cryptico.js庫。這是一個RSA算法實現。如何從密鑰中的公鑰獲取密碼

+0

如果給定的答案解決了您的問題,您可以[接受](http://meta.stackexchange.com/q/5234/266187)它。如果沒有,請詳細說明哪裏出了問題。 –

回答

0

我能夠加密「玫瑰」,我得到了公鑰dfPublicKeyString

不,你還沒有。您顯示的代碼只是生成一個RSA私鑰並從中提取RSA公鑰。

我想從我的公鑰dfPublicKeyString取回「Rosy」。

這是不可能的。您傳遞到cryptico.generateRSAKey()的密碼(「Rosy」)實際上是使用SHA-256進行散列(破壞)以產生隨機數的種子,RSA密鑰生成器需要該種子來查找大質數。

密碼散列函數是不可逆的,並且密碼僞隨機數發生器通常也是不可逆的。您完全無法從完成的RSA私鑰或甚至RSA公鑰計算初始密碼。