我这里有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
?