我正在尝试将webrequest发布到其他网站。那个其他网站在ASP中。 我通过以下函数发送SHA256 ecnrypted格式的其中一个querstings值。
另一个网站正在检查ASP格式的值。这些值不匹配。
这是我用于SHA256转换的.net 4.0函数。我正在传递值为“60400doodle2699@yahoo.com2011082337D00F66CACACA5478AD9AE1E2A3D36D”的输入以获取以下功能。 返回“AFF83D621AE6FDCEA7B191A64F470EB288BF7B996EA00A9D6FBE444A48AD9508”
但是对于同一个字符串,asp网站期望值为“e3ecd14c92a6ce3ed864e7e8feb9167c3d03142fccdd3bf6a2cd2385c122977”,这就是我的呼叫失败的原因
public string EncryptSHA256Managed(string input )
{
UnicodeEncoding uEncode = new UnicodeEncoding() ;
byte[] bytClearString = uEncode.GetBytes(input);
SHA256Managed sha = new SHA256Managed() ;
string strHex = string.Empty;
byte[] hash = sha.ComputeHash(bytClearString) ;
string hex = BitConverter.ToString(hash);
hex = hex.Replace("-", "");
return hex;
}
答案 0 :(得分:0)
首先,您需要使用已知的SHA256实现来确定其中是否正确; Firefox的Hackbar插件有一个,Notepad ++的Unicode版本有一个,如果将Jacksum 1.7.0粘贴到一个文件中(注意额外的字符),它将有效,并且有Web版本 http://www.webutils.pl/index.php?idx=sha1 http://hash.online-convert.com/sha256-generator
所有这些都显示为ANSI字符串“60400doodle2699@yahoo.com2011082337D00F66CACACA5478AD9AE1E2A3D36D”的正确结果。
有可能,您在.NET端的UCS-2“Unicode”实现会导致不同的结果。
您在经典ASP中使用了哪些代码?