0

了解しました。このハッシュジェネレーターは、ハッシュが正しく生成されないことを除けば、希望どおりに機能します。スクリプトから生成されたハッシュのいくつかを他のWebサイトで見つかったハッシュと確認しましたが、一致していません。すべてのハッシュで問題があるように見えるので、ハッシュ関数とdata.encode( "utf8")で何かをしなければならないと思います。

4

1 に答える 1

2

ドキュメントによると:

hash.update(arg)

ハッシュオブジェクトをオブジェクトargで更新します。これは、バイトのバッファーとして解釈可能である必要があります。繰り返される呼び出しは、すべての引数を連結した単一の呼び出しと同等です。m.update(a); m.update(b)はと同等m.update(a+b)です。

つまり、すべての組み合わせを連結していることになります。

hasher代わりに、呼び出されるたびに新しいハッシュオブジェクトを作成する必要があります。

Hashes = {
    'MD5': hashlib.md5,
    'SHA1': hashlib.sha1,
    'SHA224': hashlib.sha224,
    'SHA256': hashlib.sha256,
    'SHA384': hashlib.sha384,
    'SHA512': hashlib.sha512
}

...

return Hash(data.encode("utf8")).hexdigest()
于 2013-03-02T03:52:38.157 に答える