最近 PyCrypto を使用して取り組んでいるプロジェクトで、AES を使用して独自の暗号化方法を作成しました。ハッシュを使用して 32 バイトのパスワードを生成し、それを CBC を使用して AES-256 ビット暗号化にフィードします。ファイル入力は、16 で割り切れるように準拠するために PKCS#7 パディングを使用してパディングされます。
問題なくファイルを暗号化および復号化でき、最初に暗号化された入力ファイルと出力ファイルは同じ SHA-256 ハッシュを持っています。
私が見つけた唯一の問題は、間違ったパスフレーズを指定した場合でも復号化が行われることです。パスフレーズが間違っている場合、復号化をすばやく失敗させる必要があるため、これは私がやっていることの問題です。
どうすればこれを実現できますか? AES 暗号化の他の方法については聞いたことがありますが、PyCrypto は ECB、CBC、CFB、OFB、CTR、および OpenPGP のみをサポートしているようです。正しいパスフレーズがないと復号化に失敗する、暗号的に強力な AES を実装するにはどうすればよいですか?