0

是否有可用于生成HMAC-SHA1哈希的 bash 脚本?

相当于以下 PHP 代码:

hash_hmac("sha1", "value", "key", TRUE);

参数

true : When set to TRUE, outputs raw binary data. FALSE outputs lowercase hexits. 

谢谢。

在 bash 中查看HMAC-SHA1

4

1 回答 1

0

不,bash它本身可以做很多事情,但它也知道何时依赖外部工具。

例如,Wikipedia 页面提供了一个 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()

或者,如果您想运行与 PHP 完全相同的代码,您可以尝试使用 运行它phpsh,详见此处

于 2013-09-03T09:37:26.183 回答