Я смог успешно зашифровать сообщение сгенерированным ключом. Теперь я пытаюсь добиться расшифровки, когда пользователь вводит ключ (hex) и там зашифрованное сообщение (hex). У меня возникает проблема при расшифровке зашифрованного сообщения (hex). Я получаю несколько NullPointerExceptions. Не могли бы вы помочь мне разобраться в решении этой проблемы?NullPointer Исключение при расшифровке AES
// Редактировать: Например, ключ (Hex): CFDD0F5311764F9EA56CF4126E304BC2 | Зашифрованное сообщение: C2A80A2B7A84A5A785E059F19322E5BA
private void executeDecryption() {
encryptMessageStr = messageEncryptTA.getText();
algorithmType = decryptAlgorithmTypeCB.getSelectionModel().getSelectedItem();
keyDecrypt = keyTF.getText();
if (!messageEncryptedTA.getText().isEmpty()) {
try {
//Using decryptText()
String textDecipher = decryptText(encryptedMessageStr, keyDecrypt);
messageEncryptedTA.setText(textDecipher);
} catch (Exception ex) {
MessageBox.display("Error!", "Could not decrypt message! Please try again later");
//System.out.println(ex.getMessage());
}
} else {
MessageBox.display("Warning!", "Please make sure message field is not empty!");
}
}
public static String decryptText(String encryptedMessageStr, String secretKey) {
try {
Key k = new SecretKeySpec(Base64.getDecoder().decode(secretKey), "AES");
Cipher cipherAES = Cipher.getInstance("AES");
cipherAES.init(Cipher.DECRYPT_MODE, k);
byte[] decodedValue = Base64.getDecoder().decode(encryptedMessageStr);
byte[] cipherTextBytes = cipherAES.doFinal(decodedValue);
String decryptedValue = new String(cipherTextBytes);
return decryptedValue;
} catch (Exception ex) {
ex.printStackTrace();
}
return "Error";
}
Отредактировано:
ИСКЛЮЧЕНИЕ: javax.crypto.IllegalBlockSizeException: Длина входного должна быть кратна 16 при расшифровке с мягким шифра
Здравствуйте, Я добавил некоторые исправления в Исключение Null указателя. – Milan
Ваш, скорее всего, правильный. Проблема заключается в том, что я беру в шестнадцатеричном значении, когда я сунул себя за простой текст. Любые идеи о том, как я могу скрывать гексагон в байтах? – Milan
Как преобразовать строку (hex) в ключ seceret? – Milan