0
此問題,使用消息認證碼是真的離開我震驚HMAC_256在Solaris
- 以一個輸入文件,並使用私鑰
- 的Base64編碼HMAC_256哈希
代碼
#Create HMAC-SHA2 hash from shell parameter
filehash=`echo $1 | mac -a sha256_hmac -k test.key`
echo "HMAC_SHA256 hash : "$filehash
#Base64 encode filehash using openssl
filehash_64=`echo "$filehash" | /usr/sfw/bin//openssl enc -base64 | tr '\n' ' ' | cut -d " " -f2 `
echo "64 bit encoded hash : "$filehash_64
使用的
一個test.key Bob123
殼牌輸入
你好
殼牌輸出
SHA256 hash : 411796cfb1e6c30c1b39b589c79d6f8bf1fdde8d58fda4a6ec1e59538ecaa39a
64 bit encoded hash : ZWMxZTU5NTM4ZWNhYTM5YQo=
但是如果我去這些網站,並做了HMAC_256測試它們都產生不同的散列
http://asecuritysite.com/encryption/hmac
http://jetcityorange.com/hmac/
他們兩個輸出的
一個HMAC_256哈希a30410f584726f32ba3e6e823bfdecbdf28448d64e4ab8f11f6a2 e66818b50fe
他們爲什麼產生不同的散列?我假設他們是正確的,因爲他們都有相同的。
- Solaris 10是否有MAC(消息認證碼) 工具的bug?
- 它是UTF8還是ASCII碼問題?
- 它是服務器問題,Windows/Unix?
我不明白爲什麼我爲他們生成不同的哈希值,即使我使用相同的哈希算法和密鑰。
對於''filehash ='echo $ 1 | mac -a sha256_hmac -k test.key'','$ 1'可能應該引用:'「$ 1」'。並遵循[TheGreatContini](http://stackoverflow.com/a/24730605/445221)使用'-n'的建議。 – konsolebox
它仍然是不同的,我試圖在Java中做一個等價的算法,它使一個完全不同的散列.... – kaleeway
也許發佈,Java代碼也會有所幫助。 – konsolebox