使用 Haskellcrypton
包,我尝试生成相同的输出,openssl dgst
但不知道哪里出错了。请帮忙。
openssl dgst:
$ echo "TheMessage" | openssl dgst -sha256 -mac HMAC -macopt key:"TheKey"
SHA2-256(stdin)= 7b2e5669f4a5fa30a3fa0e9147f8975883cddff77725c99a6db07395b9665974
加密:
ghci> hmacGetDigest ( hmac ("TheKey" :: ByteString) ("TheMessage" :: ByteString) :: HMAC SHA256 )
39c17c48adbc2ea4d469af9ecb2569f921053843af2a0a7716b7a180b0cedff6
谢谢。
您在命令行上测试加密代码时遇到了一个常见问题。该
echo
命令会在输出中添加一个换行符,因此您要么需要"TheMessage\n"
在 Haskell 代码中进行哈希处理,要么echo -n "TheMessage"
在测试中使用 来抑制换行符openssl
。任何一个:
或者: