2017-03-09 182 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公钥计算初始密码。