Javaで同じパスワードとソルトのみを使用して復号化できるように、パスワードとソルトを使用してAES暗号化を行うにはどうすればよいですか。これが必要なのは、データをデータベースに入れる前に暗号化し、復号化のために IV バイト配列をデータベースに保存したくないからです。パスワードとソルトを使用してデータを暗号化し、暗号化されたデータをデータベースに保存して、データが必要なときにデータベースからデータを取得し、同じパスワードとソルトを使用して復号化したいだけです。
2 に答える
0
次の 2 つの可能性が考えられます。
AES-CTR を使用します。カウンターモードは IV を必要としません。
パスワードとソルトからキーと IV の両方を取得します。何かのようなもの:
キー <- ハッシュ(パスワード + ソルト + "キー")
IV <- ハッシュ (パスワード + ソルト + "IV")
明らかに、実際には、必要なセキュリティの程度に応じて、標準のキー派生関数を使用します。
また、データベースから返されたものがそこに入力したものと同じであることを確認するための認証についても考えたいと思うかもしれません。組み込み認証の場合、AES-CTR の代わりに AES-GCM を使用するか、2 番目のオプションを使用している場合は HMAC を追加します。
于 2013-04-28T12:03:09.533 に答える