1

所以现在,我的 Java 代码正在创建与我们的 Perl 代码不同的 SHA-256 哈希,但只有在 UTF8 字符起作用时。我做了一些调试,发现名称 Jörg 的 byte[] 表示在语言中如下所示:

Java 74、-61、-74、114、103

Perl 74、195、182、114、103

可能导致哈希的差异?看起来 Java 使用有符号字节,而 Perl 使用无符号字节。如果需要/要求提供更多信息!

谢谢!

4

1 回答 1

7

所以问题原来是在Java中,当我反转字符串时,它正在反转字符(如预期的那样)。在 Perl 中, reverse 实际上作用于字节。这意味着 Jörg 在反转时在语言中看起来像这样:

爪哇 103 114 -61 -74 74

Perl 103 114 195 182 74

希望这可以帮助其他人!

于 2012-08-15T17:37:49.150 回答