我正在尝试制作我的第一个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.
答案 0 :(得分:0)
您应该保护私钥安全。将其打印出来(并将值一般存储在字符串中)并不安全。想象一下,您错误地在私钥上执行toString()
,并在日志文件中获得私钥。那当然不是一个好主意。
只要您使用SunRSA提供程序(以及将键存储在计算机的无保护内存中的大多数其他提供程序),就可以轻松打印出值,只需转换为{{1或者(如果你需要所有的值)RSAPrivateKey
并自己检索整数:
RSAPrivateCrtKey