java - Siphash tostring 和 getBytes()

标签 java string byte guava

我已经为 1 个字符串和 2 个长值(对于许多此类字符串和长值的组合)生成了 SipHash。我用过 -

Hasher hash = Hashing.sipHash24().newHasher().putUnencodedChars("abcd").putLong(123).putLong(123);

现在我使用 - 将此哈希转换为字符串

String hashString = hash.hash().toString();

但是,我想要字符串的字节数组,有什么办法可以让我能够从这个字符串中获取字节数组,就像从 byte[] hashBytes 中获取的字节数组一样= hash.hash().asBytes(); 我想将从这些哈希值中获得的字符串转换为字节数组。

实际上我意识到字节数组只使用了 siphash 的 8 字节空间,而字符串的长度是 18 字节。所以,我想将哈希存储为字节数组会更加优化。

最佳答案

BaseEncoding.base16().lowerCase().decode(string)

应该将 HashCode.toString() 转换回您从 asBytes() 获得的字节数组。

关于java - Siphash tostring 和 getBytes(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35429337/

相关文章:

string - bytes.Split 分隔符为 []byte ("...")

java - 在 JPA 的多对多关系中使用组合键

java - 删除字符串中的反斜杠

python - 字符串索引必须是整数,而不是 str - Python 脚本

Java uint32(存储为long)到4字节数组

python - 非纯文本文件的 Steganographer 文件处理错误

Java - 测试重复对象

java - 如何向 "Window->Open View"菜单的 viewShortCut 贡献部分

c - 在 C 中通过 Zeromq 重定向标准输出

java - Android Java 重复字符串 x 次