Я хочу расшифровать строку, которая работает с правильным паролем. Я пытался проверить пароль с if(decrypt(Password, encryptedKey).contains(Key)){
Но если PW не так, я получаю следующее исключение:Проверить пароль перед расшифровкой
javax.crypto.BadPaddingException: pad block corrupted
Так есть еще один способ проверки пароля?
public static String decrypt(String seed, String encrypted) throws Exception {
byte[] rawKey = getRawKey(seed.getBytes());
byte[] enc = toByte(encrypted);
SecretKeySpec Spec = new SecretKeySpec(rawKey, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, Spec);
byte[] result = cipher.doFinal(enc);
return new String(result);
}
Ну, если он не расшифрует (и не выдаст исключение) с использованием неправильного пароля, но расшифрует с использованием правильного пароля, в чем проблема? Нет (или, по крайней мере, * не должен быть *) «более простой» способ проверить пароль, чем фактически расшифровать. – Piskvor
Вы имеете в виду, что я должен использовать try и catch ?? – Droider