C# UTF8编码的密码字节[]与SHA512加密到字符串转换

C# UTF8编码的密码字节[]与SHA512加密到字符串转换,c#,passwords,C#,Passwords,我用c#创建了一个web表单,它接受用户名和密码,并以MSSQL 2005 db的“图像”格式存储密码。密码与salt合并,用UTF8编码,最后应用SHA512加密。当我从数据库中提取密码时,我希望能够看到字符串格式的密码。如果下面是我加密密码的方式,我的解密函数应该是什么?有可能吗 string loginID = "";//This will be stored in varchar format in MSSQL..(Unrelated to the question) s

我用c#创建了一个web表单,它接受用户名和密码,并以MSSQL 2005 db的“图像”格式存储密码。密码与salt合并,用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中的值作为图像数据类型存储在MSSQL中,salt作为int存储。

根据定义,hash函数就是单向函数。在最后一行之前,您可以获取密码,但在使用哈希函数之后,您所能做的就是生成第二个哈希,然后比较这两个哈希,看看它们是否产生了相同的结果,在这种情况下,您可以假定源字符串是相同的。

是否可以检索salt和哈希密码,并将其作为web服务发送到一些MD5解密站点/服务?