我目前正在使用SimpleEncrypto
NuGet包来加密我的密码,如下所示:
var crypto = new SimpleCrypto.PBKDF2();
var encrypPass = crypto.Compute(user.Password);
var newUser = db.Users.Create();
newUser.PasswordSalt = crypto.Salt;
麻烦的是密码和生成的盐大约有100个字符,我真的只是想让它缩短很多,所以它适合数据库中的表。用户最多只能输入20个字符
如何限制加密和盐的长度?
答案 0 :(得分:0)
首先,您不是加密而是散列。您可以将哈希截断为您喜欢的任何长度。当然,如果截断哈希值越多,就会冒更多冲突的风险。
将哈希截断为20个字符。 20个base64字符应该足够强大的密码。那个6*20=120
比特的熵可能比几乎所有用户的密码都多。