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()));
------解决思路----------------------
每次都是随机的呀,你确定parseByte2HexStr方法正确么?你用Arrays.toString这个做转换。
最近项目要用到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()));
------解决思路----------------------
每次都是随机的呀,你确定parseByte2HexStr方法正确么?你用Arrays.toString这个做转换。