2014-06-22 18 views
6

Ich mache eine Anwendung, die ein Schlüsselpaar für einen Benutzer generiert. Aber in jedem Gerät sind die Schlüssel identisch. Hier ist mein Code:Android KeyPairGenerator generiert immer das gleiche Schlüsselpaar

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

und den erzeugten Schlüssel Code zu erhalten ist:

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

Die Schlüsselerzeugung nur einmal für jedes Android-Gerät genannt wird, und aus diesem Grunde der Schlüssel in jedem Gerät sollte anders sein. Kann mir jemand sagen, was ich hier vermisse?

+0

das passiert auch für mich! irgendeine Lösungsmöglichkeit? – necromancer

Antwort

10

Ich glaube, dass Sie nur die ersten oder letzten paar Bits betrachten. Ich dachte, ich hätte das gleiche Problem, aber als ich mir die Bits in der Mitte anschaute, waren sie tatsächlich anders!