入力文字列とソルト文字列を受け入れる基本的なハッシュ関数を作成しようとしています。これらの文字列は両方ともバイト配列に変換する必要があり、結合してからハッシュが生成されます。
インスピレーションを得るために Microsoft メンバーシップを調べてみたところ、次のようになっていることがわかりました。
byte[] bytes = Encoding.Unicode.GetBytes(input);
byte[] array = Convert.FromBase64String(salt);
だから私が聞きたいのは:
- 入力文字列をバイト配列に変換するときに使用するのに最適なエンコーディングは unicode ですか? UTF-8はどうですか?
- ソルト値に使用するのに最適な形式は Base64String ですか? Base64 文字列に制限する場合、基本的には常にハッシュをソルトとして使用する必要がありますが、これは推奨される方法ですか?