Je crée une application qui génère une paire de clés pour un utilisateur. Mais dans chaque appareil, les clés sont identiques. Voici mon code:
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; }
Et pour montrer le code clé généré est:
KeyPair keyPair = rsa.generateKeys(); byte[] publicKey = keyPair.getPublic().getEncoded(); byte[] privateKey = keyPair.getPrivate().getEncoded(); privateText.setText( Base64.encodeToSsortingng(privateKey, Base64.NO_WRAP) ); publicText.setText( Base64.encodeToSsortingng(publicKey, Base64.NO_WRAP) );
La génération de clé est appelée une seule fois pour chaque appareil Android, et pour cette raison, les clés de chaque appareil devraient être différentes.