php エディター Zimo は、Go と Python の間の Murmur3 ハッシュの互換性を紹介します。 Murmur3 は、データ構造およびアルゴリズムのハッシュ操作に一般的に使用される効率的なハッシュ アルゴリズムです。 Murmur3 ハッシュ アルゴリズムは、Go と Python の 2 つのプログラミング言語で異なる方法で実装されているため、使用時に互換性の問題が発生する可能性があります。この記事では、Go と Python の Murmur3 ハッシュ アルゴリズムの違いについて詳しく説明し、異なる言語間でデータを渡すときに正しいハッシュ互換性を確保するためのソリューションを提供します。
2 つの異なるライブラリがあり、1 つは Python で、もう 1 つは go で、同じ方法で murmur3 ハッシュを計算する必要があります。残念ながら、どんなに頑張っても、ライブラリで同じ結果を生成することはできませんでした。 Java と Python に関するこの質問から判断すると、互換性は必ずしも単純ではありません。
現在、Python mmh3 を使用し、github.com/spaolacci/murmur3 ライブラリに移動します。
準備中:
リーリーPython の場合:
リーリーGo では、murmur3
は uint64
を返すため、Python では signed=false
を想定しますが、signed= true## も試してみました。 # 一致するハッシュ値を取得できませんでした。
リーリー
準備中:リーリー ###結果:### リーリー
つまり、これら 2 つの単語の順序は逆になります。 Python で同じ結果を得るには、次のことを試すことができます:リーリー
以上がGo と Python の間の Murmur3 ハッシュの互換性の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。