2014-06-22 17 views
6

Sto creando un'applicazione che genera una coppia di chiavi per un utente. Ma in ogni dispositivo le chiavi sono identiche. Qui è il mio codice:Android KeyPairGenerator genera sempre la stessa coppia di chiavi

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; 
} 

E per mostrare il codice chiavi generato è:

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)); 

La generazione chiave viene chiamato solo una volta per ogni dispositivo Android, e per questo motivo le chiavi in ​​ciascun dispositivo dovrebbe essere diverso .. qualcuno può dirmi cosa mi manca qui?

+0

questo sta accadendo anche per me! qualche soluzione? – necromancer

risposta

10

Credo che tu stia guardando solo i primi pochi o ultimi bit. Pensavo di avere lo stesso problema, ma quando guardavo i pezzi nel mezzo, erano davvero diversi!

Problemi correlati