2011-09-14 64 views
1

我想知道是否有可能從私鑰恢復RSA公鑰?私人密鑰加載像這樣:是否有可能從私鑰的byte []數組中恢復RSA公鑰?

PrivateKey privateKey = GnuRSAPrivateKey.valueOf(Utils.hexStringToBytes(prvKey)); 

如何從私人加載PublicKey? privateKey.getFormat返回null。

+0

注意,這是一個大約長棄用的加密工具庫的問題。 –

回答

2

我假設你的GnuRSAPrivateKey是從the GNU Crypto project

A GnuRSAPrivateKey實例包含私鑰,其中包含一些額外的值,這些值不是實現RSA所需要的,但仍然受歡迎用於性能(使用中國剩餘定理)和安全性(公開指數對於掩蔽,這有助於防止時間攻擊)。因此,這個私鑰還包含公鑰。

所以這應該工作:

GnuRSAPrivateKey sk = GnuRSAPrivateKey.valueOf(theEncodedPrivateKey); 
PrivateKey privateKey = sk; 
PublicKey publicKey = new GnuRSAPublicKey(sk.getN(), sk.getE()); 
+0

它的工作原理!謝謝 :) – dynax60