我从我的密码生成盐和哈希值使用,
string salt = CreateSalt(TxtPassword.Text.Length); string hash = CreatePasswordHash(TxtPassword.Text,salt); private static string CreateSalt(int size) { //Generate a cryptographic random number. RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider(); byte[] buff = new byte[size]; rng.GetBytes(buff); // Return a Base64 string representation of the random number. return Convert.ToBase64String(buff); } private static string CreatePasswordHash(string pwd,string salt) { string saltAndPwd = String.Concat(pwd,salt); string hashedPwd = FormsAuthentication.HashPasswordForStoringInConfigFile( saltAndPwd,"sha1"); return hashedPwd; }
您建议在sql server中存储这些值的数据类型?任何建议…
盐:9GsPWpFD
哈希:E778AF0DC5F2953A00B35B35D80F6262CDBB8567
解决方法
ASPNET_DB说这个 – 不能出错.
Password nvarchar(128) NOT NULL,PasswordSalt nvarchar(128) NOT NULL,
而128可能看起来很多,各种类型的加密可能会导致比您开始的更大的字符串.绝对没有理由不跟随那些花费数千小时开发asp.net会员制的非常聪明的人.