正しいパスワードで動作している文字列を復号化したい。私は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