我正在制作一个为用户生成密钥对的应用程序。但在每个设备中,密钥都是相同的。这是我的代码:
public KeyPair generateKeys() {
KeyPair keyPair = null;
try {
// get instance of rsa cipher
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
keyGen.initialize(1024); // initialize key generator
keyPair = keyGen.generateKeyPair(); // generate pair of keys
} catch(GeneralSecurityException e) {
System.out.println(e);
}
return keyPair;
}
并显示生成的密钥代码为:
KeyPair keyPair = rsa.generateKeys();
byte[] publicKey = keyPair.getPublic().getEncoded();
byte[] privateKey = keyPair.getPrivate().getEncoded();
privateText.setText( Base64.encodeToString(privateKey, Base64.NO_WRAP) );
publicText.setText( Base64.encodeToString(publicKey, Base64.NO_WRAP) );
每个Android设备只调用一次密钥生成,因此每个设备中的密钥应该不同。有人可以告诉我这里缺少什么吗?
答案 0 :(得分:13)
我相信你只关注前几位或后几位。我以为我也遇到了同样的问题但是当我看到中间的位时,它们确实是不同的!