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 중국어 웹사이트의 기타 관련 기사를 참조하세요!