java 代码的等效 python 代码(使用 guava hash lib)

问题描述 投票:0回答:0

我这里有java代码:


import com.google.common.base.CharMatcher;
import com.google.common.hash.HashFunction;
import com.google.common.hash.Hashing;
import java.io.Serializable;
import java.nio.charset.StandardCharsets;
import java.util.Base64;

public final class SomeHashing {
    private static final HashFunction hashFunction = Hashing.farmHashFingerprint64();

    @Override
    public String hashEntity(String uid) {
      HashFunction hashFunction = Hashing.farmHashFingerprint64();
      byte[] hash = hashFunction.hashBytes(userId.getBytes()).asBytes();
      String b64Hash = Base64.getEncoder().encodeToString(hash);
      return CharMatcher.is('=').trimFrom(b64Hash);
    }
  }
}

我正在尝试将其转换为 Python 代码。我看到 python 也有一个 farmhash 包:https://pypi.org/project/pyfarmhash/ 但我在那里没有看到

hashBytes
等价物,因此我无法继续。

在此之前,我什至尝试从 java 的 lib (

hashString().asLong()
) 获得类似的长输出,并与 pythons 长输出 (
farmhash.fingerprint64()
) 进行比较,但它们并不相等。

有人可以在这里评论如何解决这个问题和更简单的解决方案吗?或者谷歌的 guava hash 模块是否有一个等效的 python 包

com.google.common.hash

python java python-3.x hash guava
© www.soinside.com 2019 - 2024. All rights reserved.