1. 「pass123」のような SHA-1 パスワード、16 進数デコードの最初の 32 文字をキーとして使用それは十分に安全ですか?
パスワードを使用して安全にデータを暗号化するには、アプリケーションが必要です。これをグーグルで検索すると、あまりにも多くの異なることが出てきます。また、それについて理解できないこともあります。これは一般的な質問であり、特定のコーディング言語ではありません (ただし、これを Java と iOS で使用する予定です)。
これをより適切に実行しようとしているので、私が考えていることに従ってください。
入力は「pass123」などのパスワード、データは「銀行口座は038414838、暗証番号は5931」など暗号化したいもの
PBKDF2 を使用して、パスワードからキーを取得します。パラメータ: 1000 反復の長さ 256 ビット ソルト - どこからソルトを取得すればよいかわからないため、これは私を混乱させます。たとえば、すべての暗号化では常にソルト「F」が使用されます (明らかにソルトは 1 文字である 8 ビットであるため)。
今、私はこのキーを取得し、それをハッシュしますか?? SHA-256 などを使用する必要がありますか? それは安全ですか?そして、HMACとは何ですか?私はそれを使うべきですか?注: 手順 2 と 3 の両方を実行する必要がありますか、それともどちらか一方だけで問題ありませんか?
これで、暗号化に使用する 256 ビット キーを取得できました。そこで、AES を使用して暗号化を実行しますが、ここでさらに紛らわしい部分 (パラメーター) があります。使用するさまざまな「モード」が何であるかはよくわかりません.CBCやEBCなど、他にもたくさんあるようです.「初期化ベクトル」についてもわかりません.1つを作成して常にそれを使用しますか? ? では、他のオプションについてはどうでしょうか。PKCS7Padding とは何ですか?