[英]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.