RSA crypter avec la clé publique codée en base64 dans Android
Comment faire le cryptage RSA, de tableau d'octets avec codé en base 64 clé publique?
Après la lecture de quelques articles( recherche google ) sur la façon de faire le cryptage RSA, en Java, a trouvé le bout de code suivant
public byte[] rsaEncrypt(byte[] data) {
PublicKey pubKey = readKeyFromFile("/public.key");
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, pubKey);
byte[] cipherData = cipher.doFinal(src);
return cipherData;
}
J'ai la clé publique comme une chaîne encodée en base64 (126 caractères), Comment puis-je créer des "PublicKey" avec la chaîne codée et l'utiliser avec de Chiffrement.
source d'informationauteur Suresh Manchi | 2010-06-02
Vous devez vous connecter pour publier un commentaire.
Votre chaîne base64 est peut-être un X509EncodedKeySpec. Je ne peux que deviner. Si oui, vous devriez base64 décoder la chaîne pour obtenir un
byte []
. Puis de construire unX509EncodedKeySpec
de cettebyte []
. Ensuite créer une instance d'un RSAKeyFactory
et l'utilisation de lageneratePublic()
méthode de cette KeyFactory pour obtenir unPublicKey
. Cette clé publique peut alors être transmis àCipher.init()
.Remarque: pour effectuer un décodage base64 utiliser le apache commons codecou le plus Difficile base64 decoder.
Mise à JOUR le 8 Mars 2017:
De mieux en retard que jamais d'actualité, Java 8 comprend maintenant un Base64 de codage/décodage de classe,
java.util.Base64
c'est comment vous pouvez générer des clés Publique et Privée de la paire de
ci-dessous est la fonction de les stocker sur disque dur dist