Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash中的HMAC-SHA1_Bash_Hmacsha1 - Fatal编程技术网

bash中的HMAC-SHA1

bash中的HMAC-SHA1,bash,hmacsha1,Bash,Hmacsha1,是否有bash脚本可用于生成HMAC-SHA1哈希 等效于以下PHP代码: hash_hmac("sha1", "value", "key", TRUE); 参数 true : When set to TRUE, outputs raw binary data. FALSE outputs lowercase hexits. 谢谢 请参见bash本身中的,不,它可以做很多事情,但它也知道何时依赖外部工具 例如,提供了一个Python实现,bash可以调用该实现来为HMAC_MD5执行繁重的

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

等效于以下PHP代码:

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

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


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

例如,提供了一个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()
constructor一起使用的详细信息,请参阅)

或者,如果您想运行与PHP完全相同的代码,您可以尝试使用
phpsh
运行它,详细说明如下。

可能重复的