是否有可用于生成 HMAC-SHA1 哈希的bash脚本?
等效于以下PHP代码:
hash_hmac("sha1", "value", "key", TRUE);
参数
true : When set to TRUE, outputs raw binary data. FALSE outputs lowercase hexits.
感谢。
答案 0 :(得分:0)
在bash
本身,不,它可以做很多事情,但它也知道何时依赖外部工具。
例如,Wikipedia page提供了一个Python实现,bash
可以调用它来执行HMAC_MD5的繁琐工作,下面重复以使这个答案自成一体:
#!/usr/bin/env python
from hashlib import md5
trans_5C = "".join(chr(x ^ 0x5c) for x in xrange(256))
trans_36 = "".join(chr(x ^ 0x36) for x in xrange(256))
blocksize = md5().block_size
def hmac_md5(key, msg):
if len(key) > blocksize:
key = md5(key).digest()
key += chr(0) * (blocksize - len(key))
o_key_pad = key.translate(trans_5C)
i_key_pad = key.translate(trans_36)
return md5(o_key_pad + md5(i_key_pad + msg).digest())
if __name__ == "__main__":
h = hmac_md5("key", "The quick brown fox jumps over the lazy dog")
print h.hexdigest() # 80070713463e7749b90c2dc24911e275
(请记住,Python也包含SHA1内容,有关如何将HMAC与hashlib.sha1()
构造函数一起使用的详细信息,请参阅here。)
或者,如果您想运行与PHP完全相同的代码,您可以尝试使用phpsh
运行它,详细here。