关于网友提出的“ KeyPairGenerator 密钥生成公钥私钥对为什么每次都是一样的”问题疑问,本网通过在网上对“ KeyPairGenerator 密钥生成公钥私钥对为什么每次都是一样的”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: KeyPairGenerator 密钥生成公钥私钥对为什么每次都是一样的描述:
最近项目要用到RSA加密算法确保项目安全,
用了JDK自带的密钥生成,可为什么每次密钥对生成都是一样的呢,而且在同事机器上也是一样的结果,如此,私钥便没有意义了,代码如下,请大家指教:
KeyPairGenerator kpg = null;
try {
kpg = KeyPairGenerator.getInstance("RSA");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
kpg.initialize(1024);
KeyPair kp = kpg.generateKeyPair();
RSAPublicKey publicKey = (RSAPublicKey) kp.getPublic();
RSAPrivateCrtKey privateKey = (RSAPrivateCrtKey) kp.getPrivate();
System.out.println(parseByte2HexStr(publicKey.getEncoded()));
System.out.println(parseByte2HexStr(privateKey.getEncoded()));
解决方案1:
每次都是随机的呀,你确定parseByte2HexStr方法正确么?你用Arrays.toString这个做转换。