Go와 Python 간의 Murmur3 해시 호환성

王林
풀어 주다: 2024-02-09 13:10:19
앞으로
1160명이 탐색했습니다.

Go 和 Python 之间的 Murmur3 哈希兼容性

php 편집기 Zimo가 Go와 Python 간의 Murmur3 해시 호환성을 소개합니다. Murmur3은 데이터 구조 및 알고리즘의 해시 연산에 일반적으로 사용되는 효율적인 해시 알고리즘입니다. Murmur3 해싱 알고리즘은 Go와 Python 두 가지 프로그래밍 언어에서 다르게 구현되므로 사용 시 호환성 문제가 발생할 수 있습니다. 이 기사에서는 Go와 Python의 Murmur3 해싱 알고리즘의 차이점을 자세히 설명하고 서로 다른 언어 간에 데이터를 전달할 때 올바른 해시 호환성을 보장하는 솔루션을 제공합니다.

질문 내용

우리는 동일한 방식으로 murmur3 해시를 계산해야 하는 Python과 Go의 두 가지 라이브러리를 가지고 있습니다. 불행하게도 우리가 아무리 노력해도 라이브러리에서 동일한 결과를 얻을 수 없었습니다. Java 및 Python에 대한 이 질문으로 판단하면 호환성이 반드시 간단하지는 않습니다.

이제 우리는 Python mmh3을 사용하고 있으며 github.com/spaolacci/murmur3 라이브러리로 이동합니다.

진행 중:

으아악

파이썬에서:

으아악

In go에서는 murmur3返回一个uint64,所以我们假设python中的signed=false;但是我们也尝试了 signed=true 일치하는 해시 값을 얻지 못합니다.

우리는 다양한 라이브러리에 열려 있지만 문자열에서 base64로 인코딩된 해시를 계산하는 go 또는 python 접근 방식에 문제가 있는지 알고 싶습니다. 도움을 주시면 감사하겠습니다.

해결 방법

첫 번째 Python 결과는 거의 정확합니다.

으아악

진행 중:

으아악

결과:

으아악

그래서 이 두 단어의 순서가 바뀌었습니다. Python에서 동일한 결과를 얻으려면 다음을 시도해 보세요:

으아악

위 내용은 Go와 Python 간의 Murmur3 해시 호환성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!