64 バイト (512 ビット) のソルトを生成するメソッドを取得しました。
public static string GenerateSalt()
{
var rngCrypto = new RNGCryptoServiceProvider();
byte[] saltBytes = new byte[64];
rngCrypto.GetBytes(saltBytes);
string result = Convert.ToBase64String(saltBytes);
return result;
}
これは問題なく実行されているようですsaltBytes。bytearray のサイズは 64 バイトです。ただし、char(64)型付きの列で構成される MS SQL データベース テーブルに結果を入力できません。
私の仮定では、Convert.ToBase64String(saltBytes);私の側でメソッドに問題があると思いますが、これを改善する方法を知りたいです。簡単に実行するSystem.Text.ASCIIEncoding.Unicode.GetByteCount(secondSalt);と、文字列サイズが 64 バイトではなく 176 バイトであることがわかります。