在Java中获取数字签名的私钥

时间:2016-11-02 20:06:13

标签: java digital-signature p2p

我正在尝试制作我的第一个P2P软件,我将使用数字签名来识别用户。我跟着this tutorial on Oracle.com。它只说明如何获取公钥,而不是如何获取私钥。

SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SUN");
keyGen.initialize(1024, random);
KeyPair pair = keyGen.generateKeyPair();
PrivateKey priv = pair.getPrivate(); //It's not possible to print this.
PublicKey pub = pair.getPublic(); //It's possible to print this.

1 个答案:

答案 0 :(得分:0)

您应该保护私钥安全。将其打印出来(并将值一般存储在字符串中)并不安全。想象一下,您错误地在私钥上执行toString(),并在日志文件中获得私钥。那当然不是一个好主意。

只要您使用SunRSA提供程序(以及将键存储在计算机的无保护内存中的大多数其他提供程序),就可以轻松打印出值,只需转换为{{1或者(如果你需要所有的值)RSAPrivateKey并自己检索整数:

RSAPrivateCrtKey