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自体で多くのことを実行できますが、外部ツールに頼るタイミングも知っています。

たとえば、ウィキペディアのページbashでは、 HMAC_MD5 の面倒な作業を実行するために呼び出すことができるPython 実装を提供しています。この回答を自己完結型にするために、以下で繰り返します。

#!/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 に答える