PythonでSHA1ハッシュを作成する方法 質問する

PythonでSHA1ハッシュを作成する方法 質問する

私の目的は、Python でスマート カードを使用して「ハッシュ署名」を実行することです。 はhashlib使用されていますが、Python には特定の SHA1 または SHA256 関数はありません。

私の仕事:

hash_object = hashlib.sha1(b'HelWorld')
pbHash = hash_object.hexdigest()

しかし、取得したハッシュオブジェクトの長さは28です。むしろ、次のように条件を切り替えることができるように、14または20を取得する必要があります。[1]

switch ( dwHashLen )
{
case 0x14: // SHA1 hash
           // call scard transmit
case 0x20: // SHA256 hash
           // ...
}

ご協力いただければ幸いです。よろしくお願いします。


[1] これは私が現在Pythonに移植しているCコードの一部です。

ベストアンサー1

実際には40ですが、16進数では です0x28。16進数のハッシュをASCIIにデコードするには次のようにします。

>>> import hashlib
>>> hash_object = hashlib.sha1(b'HelWorld')
>>> pbHash = hash_object.hexdigest()
>>> length = len(pbHash.decode("hex"))
>>> print length
20

または単に代わりdigesthexdigestダン・D提案されました。

おすすめ記事