所以现在,我的Java代码正在创建一个与我们的Perl代码不同的SHA-256哈希,但只有当UTF8字符发挥作用时。我做了一些调试,发现名称 Jörg 的 byte[] 表示在语言中如下所示:
爪哇 74, -61, -74, 114, 103
Perl 74, 195, 182, 114, 103
可能导致哈希值的差异吗?看起来Java使用有符号字节,而Perl使用无符号字节。如果需要/要求,更多信息!
谢谢!
所以问题原来是,在 Java 中,当我反转字符串时,它正在反转字符(正如预期的那样)。在Perl中,反向实际上适用于字节。这意味着 Jörg 在反转时在语言中看起来像这样:
爪哇 103 114 -61 -74 74
Perl 103 114 195 182 74
希望这对其他人有所帮助!