Java SHA1 for unicode?



我试图获得unicode字符串的SHA1哈希,一些中文字符串在Eclipse中的Android Java代码中。我使用了常见的MessageDigest类以及一些来自网络的十六进制转换代码。

我想知道如何验证哈希及其十六进制转换是否正确?我把这个中文字符串插入了许多在线哈希转换器,但是所有这些都产生了不同的散列。同样的遮盖物很好用ascii字符串。

我是这方面的新手,所以一些建议将不胜感激!

br,perza

什么算"正确"?像SHA-1这样的哈希处理二进制数据,而不是文本。。。并且有各种不同的方式将文本转换为二进制。

这里的目的是什么?您是否必须使哈希与某些其他代码生成的哈希相匹配?如果是,请找出其他代码用于将文本转换为二进制的编码。如果只需要匹配你的代码,你就可以自由使用了——我建议使用UTF-8或UTF-16,这两种语言都保证在Java中存在,在其他平台上通常可以使用,以备将来选择,并涵盖整个Unicode字符库。

"在线哈希转换器"是什么意思?

如果您计算了某个Unicode字符串的SHA1哈希,则不可能从哈希中取回字符串。这是哈希函数的关键,它的"单向"。

您可以使用另一个SHA实现并检查是否得到了与结果相同的散列。

最新更新