[英]SHA1 base64 algorithm in javascript and C#
我正在运行一些测试,比较javascript中实现的sha1算法 - 来自http://pajhome.org.uk/crypt/ - 在C#中实现。
使用C#获取{'method'的哈希值:'people.get'}我正在使用这个语句:
Convert.ToBase64String(new System.Security.Cryptography.SHA1CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes("{'method':'people.get'}")));
这给了我Qy95a0ShZqhbNdt6IF8qNf72jX0=
在javascript中我得到几乎相同: Qy95a0ShZqhbNdt6IF8qNf72jX0
使用语句:
b64_sha1("{'method':'people.get'}");
在javascript的情况下,哈希不以等号(=)结束。
这种差异会导致我在对服务器进行身份验证时遇到麻烦吗?
在我的情况下,正如你们许多人所知,我正在计算哈希的句子进入http体内,服务器将检查它。
谢谢
将取决于接收器,但尝试使用C#从javascript解码您的结果,你会得到一个例外。 =符号用于将结果填充到正确的长度。
我在我的问题中提到的lib中的sha1.js
有一个名为b64pad
的全局变量,用于填充。 默认情况下,其值为""
。 更改为"="
会给出C#API计算的确切哈希值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.