e201065d0554652615c320c00a1d5bc8edca469d72c2790e24152d0c1e2b6189
但是this website(SHA-256 produces a 256-bit (32-byte) hash value)告诉我的是:
5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
我显然有数据格式问题或类似的问题.有什么想法为什么这个C#SHA256Managed方法返回不同的东西?我发送方法“密码”作为输入参数.
private static string CalculateSHA256Hash(string text) { UnicodeEnCoding UE = new UnicodeEnCoding(); byte[] hashValue; byte[] message = UE.GetBytes(text); SHA256Managed hashString = new SHA256Managed(); string hex = ""; hashValue = hashString.ComputeHash(message); foreach (byte x in hashValue) { hex += String.Format("{0:x2}",x); } return hex; }解决方法
UnicodeEncoding
是UTF-16,保证将所有字符膨胀为2到4个字节以表示其Unicode代码点(另请参阅MSDN上的“备注”部分). 使用(静态)Encoding.UTF8
代替,因此大多数字符将适合一个字节.这取决于您需要模拟哪个系统是否适用于所有字符串.
以上是内存溢出为你收集整理的C#中String的SHA256哈希与网站上的哈希不一致全部内容,希望文章能够帮你解决C#中String的SHA256哈希与网站上的哈希不一致所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)