KeyPairGenerator Android всегда генерирует пару ключей

Я делаю приложение, которое генерирует пары ключей для пользователей. Но в каждом устройстве ключи идентичны. Вот мой код:

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, и по этой причине ключи в каждом устройстве должны быть разными.. Может ли кто-нибудь сказать мне, чего мне здесь не хватает?

1 ответов


Я считаю, что вы смотрите только на первые несколько или последние несколько бит. Я думал, что у меня такая же проблема, но когда я посмотрел на биты в середине, они действительно были разными!