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 バイトであることがわかります。