В моей программе мне пришлось зашифровать дополнительный текст, введенный пользователем ключом AES, а затем зашифровать этот ключ открытым ключом RSA и, конечно же, расшифровать его позже с помощью закрытого ключа. Все, что работает, но то, что я не могу заставить работать, - генерировать хеш-значение из этой введенной строки в конце. Я несколько раз искал поиски в Интернете, но я не могу найти, что я делаю неправильно. AНеспособность генерировать значение хэша
Вот мой код, но не весь, только те части, где у меня проблемы , и вот где я создаю строку inputText1, где пользователь вводит все, что ему нравится.
Cipher aesCipher = Cipher.getInstance("AES");
aesCipher.init(Cipher.ENCRYPT_MODE, aesSecretKey);
String inputText1 = JOptionPane.showInputDialog("Enter a secret message: ");
byte[] encrypt = aesCipher.doFinal(inputText1.getBytes());
А потом MessageDigest где я использую эту строку еще раз, но он не работает и не печатается хэш-значение строки. Что может быть неправильным? Я думал о размере байта, но это не так, как им, используя огромный объем памяти. Любой совет?
public static void getHashfromString(String inputText1) throws NoSuchAlgorithmException
{
MessageDigest mdigest = MessageDigest.getInstance("MD5");
mdigest.update(inputText1.getBytes());
byte[] HashBytes = mdigest.digest();
JOptionPane.showMessageDialog(null,"HashBytes" + new BigInteger(HashBytes));
System.exit(0);
}
Пожалуйста, прочтите http://stackoverflow.com/editing-help, чтобы вы могли более четко форматировать свой код для начала в будущем. –
будет делать @JonSkeet, но хотя мой код не отформатирован хорошо, я мог бы надеяться, что некоторые советы помогут решить мою проблему? – Patricia6946
Ну, «это не работает» на самом деле не говорит нам многого. Я бы посоветовал вам не называть 'getBytes' без предоставления кодировки, хотя ... –