我在寫一個使用HMAC進行消息認證的web服務。我正在爲摘要準備「數據」,並且在Python和NodeJS中爲相同的「數據」獲取不同的摘要。爲HMAC準備一個字符串
我相當確信這個問題是由於編碼,但我不知道如何最好的方法。
Python代碼:
import hmac
from hashlib import sha1
f = open('../test.txt')
raw = f.read()
raw = raw.strip()
hm = hmac.new('12345', raw, sha1)
res = hm.hexdigest()
print res
>> 5bff447a0fb82f3e7572d9fde362494f1ee2c25b
的NodeJS(咖啡)代碼:
fs = require 'fs'
http = require 'http'
{argv} = require 'optimist'
crypto = require 'crypto'
# Load the file
file = fs.readFileSync argv.file, 'utf-8'
file = file.trim()
# Create the signature
hash = crypto.createHmac('sha1', '12345').update(file).digest('hex')
console.log(hash)
>> a698f82ea8ff3c4e9ffe0670be2707c104d933aa
編輯:另外,原料的長度比文件長2個字符,但我不能工作了,其中這兩個角色來自。
修剪從開始和結束中刪除以及 – mrwooster
你可能會對某事,長度是不同的2個字符。這是不適用於帶/裝飾,不同的是2個字符沒有他們 – mrwooster
@mrwooster只是縮小到如果相同的文件正在閱讀,那麼它可能是編碼 - 快樂狩獵... –