【发布时间】:2011-08-03 19:00:41
【问题描述】:
我在 c# 中创建了一个 Web 表单,它接受用户名和密码,并将密码以“图像”格式存储在 MSSQL 2005 db 中。密码与盐合并,以 UTF8 编码,最后使用 SHA512 加密。当我从数据库中提取密码时,我希望能够以字符串格式查看密码。如果以下是我加密密码的方式,我的解密功能应该如何?那可能吗? :
string loginID = "";//This will be stored in varchar format in MSSQL..(Unrelated to the question)
string password =""; //This is where I store password inputted by user.
Random r = new Random();
int salt = r.Next((int)Math.Pow(2, 16));
int verifyCode = r.Next((int)Math.Pow(2, 16));
string tmpPwd = password.ToLower() + salt.ToString();
UTF8Encoding textConverter = new UTF8Encoding();
byte[] passBytes = textConverter.GetBytes(tmpPwd);
byte[] hashedPWD = new SHA512Managed().ComputeHash(passBytes);
hashedPWD 中的值作为 image 数据类型存储在 MSSQL 中,而 salt 存储为 int。
【问题讨论】: