我想创建随机密码和盐。
现在我有一个基于加密密码的功能,如:
public string EncryptPassword(string password, string salt)
{
using (var sha256 = SHA256.Create())
{
var saltedPassword = string.Format("{0}{1}", salt, password);
byte[] saltedPasswordAsBytes = Encoding.UTF8.GetBytes(saltedPassword);
return Convert.ToBase64String(sha256.ComputeHash(saltedPasswordAsBytes));
}
}
所以我想使用相同的编码密码和盐但是使用随机值,在编码之前我想知道密码是什么。我该怎么办?
我有这样的事情:
public string EncryptPasswordRandom()
{
var password = // some random password, how can I generate it?
var salt = // how can I generate it?
using (var sha256 = SHA256.Create())
{
var saltedPassword = string.Format("{0}{1}", salt, password);
byte[] saltedPasswordAsBytes = Encoding.UTF8.GetBytes(saltedPassword);
return Convert.ToBase64String(sha256.ComputeHash(saltedPasswordAsBytes));
}
}
非常感谢帮助。此致
注意:我有一个运行良好的Web应用程序,我可以注册用户和 登录时,这个随机密码用于恢复密码并制作一个 随机
答案 0 :(得分:-1)
System.Web.Membership
有一个GeneratePassword方法可以完成这项工作。
至于随机生成盐 Guid.New()
应该有效。
This answer解决了以高熵方式生成盐的问题。
如果你解释一下你想要完成的事情,这可能会有所帮助。面值看起来似乎是一个奇怪的要求,除非这是某种测试。