SHA256 asp到asp.net的问题

时间:2011-08-24 16:12:11

标签: .net

我正在尝试将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;
    }

1 个答案:

答案 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中使用了哪些代码?