我正在创建一个为用户生成密钥对的应用程序.但在每个设备中,键都是相同的.这是我的代码:
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设备,密钥生成仅被调用一次,因此每个设备中的密钥应该是不同的.有人能告诉我我在这里缺少什么吗?
博主在创建一个Android应用程序,该应用旨在为每个用户设备生成唯一的RSA密钥对。然而,他们发现无论在哪个设备上运行,生成的密钥总是相同的。代码中,他们初始化了一个1024位的RSA密钥对生成器,并尝试获取和编码公钥和私钥。问题在于,尽管密钥对只应生成一次且每个设备上的密钥应不同,但当前实现似乎没有达到这个目标。
2976

被折叠的 条评论
为什么被折叠?



