Для cipher перевожу данные из byte[] в строку, потом из той же строки обратно. но обратно получаю не то же самое, в чем может быть ошибка?
Всем привет, подскажите плиз: перевожу данные из byte[] в строку, потом из той же строки обратно. но обратно получаю не то же самое, в чем может быть ошибка?
public String encryptString(String text) {
byte[] encrypted = null;
try {
// encrypt the text
cipher.init(Cipher.ENCRYPT_MODE, aesKey);
encrypted = cipher.doFinal(text.getBytes(StandardCharsets.UTF_8));
}
catch(Exception e) {
e.printStackTrace();
}
return new String(encrypted, StandardCharsets.UTF_8);
}
public String decryptString(String encrypted) {
byte[] text = null;
try {
// decrypt the text
cipher.init(Cipher.DECRYPT_MODE, aesKey);
text = cipher.doFinal(encrypted.getBytes(StandardCharsets.UTF_8));
} catch (Exception e) {
e.printStackTrace();
}
return new String(text, StandardCharsets.UTF_8);
}
эти методы вызываются так:
String encrypted = crypto.encryptString(activationCode);
String activationQuery = URLEncoder.encode(encrypted, StandardCharsets.UTF_8);
System.err.println(encrypted);
System.err.println(activationQuery);
//test decrypt
String activationQueryD = URLDecoder.decode(activationQuery, StandardCharsets.UTF_8);
System.err.println(activationQueryD);
System.err.println(crypto.decryptString(activationQueryD));
Источник: Stack Overflow на русском