簡體   English   中英

bash中的HMAC-SHA1

[英]HMAC-SHA1 in bash

是否有bash腳本可用於生成HMAC-SHA1哈希?

等效於以下PHP代碼:

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

參量

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

謝謝。

在bash中查看HMAC-SHA1

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運行它, phpsh 處所述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM