Clé à partir d'un String en Java RSA
J'utilise dans mon application de chiffrement RSA. Pour stocker clé publique générée-je les convertir en String, puis l'enregistrer dans la base de données.
Key publicKey=null;
Key privateKey=null;
KeyPair keyPair=RsaCrypto.getKeyPairRSA(1024);
publicKey=keyPair.getPublic();
privateKey=keyPair.getPrivate();
String publicK=Base64.encodeToString(publicKey.getEncoded(), Base64.DEFAULT);
String privateK=Base64.encodeToString(privateKey.getEncoded(), Base64.DEFAULT);
- Je enregistrer des Chaînes de publicK
et privateK
.
Mon problème est que quand je veux crypter/décrypter un texte avec RSA et utiliser ma Clé enregistrée dans un format de Chaîne, je ne sais pas comment faire pour le convertir à Key
.
public static String encrypt(Key publicKey, String inputText){
byte[]encodedBytes=null;
String encryptedText="";
try {
Cipher cipher=Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
encodedBytes=cipher.doFinal(inputText.getBytes());
} catch (Exception e) {Log.e("Error", "RSA encryption error"); }
encryptedText=Base64.encodeToString(encodedBytes, Base64.DEFAULT);
return encryptedText;
}
Avez-vous une idée?
Merci beaucoup
S'il vous plaît, veuillez, s'il vous plaît ne pas stocker non chiffrés clés privées dans votre base de données. Si vous devez stocker les clés privées connu sous le nom de escrowing et vous devriez être à les crypter avec une clé symétrique n'est connu que de votre application.
Merci, oui je pense à ce sujet. Pourriez-vous me donner un avis, quelle est la meilleure façon de stocker une clé dans l'app?merci
utiliser un mot de passe protégé Java fichier de clés. Rechercher Java keytool...
Merci pour la réponse, je vais essayer
Merci, oui je pense à ce sujet. Pourriez-vous me donner un avis, quelle est la meilleure façon de stocker une clé dans l'app?merci
utiliser un mot de passe protégé Java fichier de clés. Rechercher Java keytool...
Merci pour la réponse, je vais essayer
OriginalL'auteur rgreso | 2014-04-06
Vous devez vous connecter pour publier un commentaire.
Pour convertir publicK(Chaîne de caractères) à Clé Publique, procédez comme suit :
Pour convertir privateK(String) de la Clé Privée, procédez comme suit :
essayez ce code.
Merci pour la réponse, mais il affiche toujours l'erreur, cette fois, il veut un autre paramètre: La méthode decode(byte[], int) dans le type Base64 n'est pas applicable pour les arguments (byte[]) . Avez-vous une idée? Merci beaucoup pour votre temps
passer 0 je.e par défaut
Vous pouvez utiliser Base64.encodeBase64String(byte[]) à partir de Apache Commons Codec projet.
OriginalL'auteur Rahil2952
Pourrait pas en mesure de commenter sur le post précédent. Je voudrais savoir ce qui est "clair" dans
OriginalL'auteur Ysak
Je ne peux que supposer la ligne:
avec "clair" qui était censé être "keyBytes"
OriginalL'auteur user3005339