簡體   English   中英

javascript和C#中的SHA1 base64算法

[英]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解碼您的結果,你會得到一個例外。 =符號用於將結果填充到正確的長度。

http://en.wikipedia.org/wiki/Base64

我在我的問題中提到的lib中的sha1.js有一個名為b64pad的全局變量,用於填充。 默認情況下,其值為"" 更改為"="會給出C#API計算的確切哈希值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM