如何在经典asp和asp.net之间匹配SHA256

时间:2015-12-03 18:59:05

标签: c# asp-classic sha256

我正在增加网站安全性,以便在经典ASP页面中包含sha256加密和salt。要做到这一点,我正在使用本网站的代码。 http://www.freevbcode.com/ShowCode.asp?ID=2565

我最终会将网站升级到.net,所以我想确保我可以匹配经典asp和.net中的加密密码。

在经典的asp中,我这样称呼加密。

GeneratedNewPassword = SHA256(Password & Random & NewGuid)

并生成密码:2551baf9ab959dcb4224b3c3080b5888e0866be1a53f4a123645b71020272a3c

然后我尝试在.net

中创建同样的东西
string hashedPassword = Security.HashSha1(password + random + dbUserGuid);
SHA256 sha256 = SHA256Managed.Create(); //utf8 here as well
byte[] bytes = sha256.ComputeHash(Encoding.UTF8.GetBytes(password + random + dbUserGuid));
string result = Convert.ToBase64String(bytes);

生成如下字符串:fzC5FX4ShhZrdqy8MVM7PPVnW4D2gaX6DlinPDRFT2I =

我猜它与我正在使用的utf有关,但不确定。 任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

我发现了自己的错误。我从经典asp中的数据库进入的guid是大写的,在.net中是小写的。一旦我对传入的guid做了一个toUpper,我的哈希就匹配了。

感谢您的帮助。