所以现在,我的 Java 代码正在创建一个与我们的 Perl 代码不同的 SHA-256 散列,但只有当 UTF8 字符发挥作用时。我做了一些调试,发现名称 Jörg 的 byte[] 表示在语言中如下:
Java 74、-61、-74、114、103
Perl 74、195、182、114、103
可能是哈希值不同的原因?看起来 Java 使用有符号字节,而 Perl 使用无符号字节。如果需要/请求更多信息!
谢谢!
最佳答案
所以问题原来是在 Java 中,当我反转 String 时它反转了字符(正如预期的那样)。在 Perl 中,reverse 实际上作用于字节。这意味着 Jörg 在语言中看起来像这样:
Java 103 114 -61 -74 74
Perl 103 114 195 182 74
希望这对其他人有帮助!
关于java - Perl/Java 字节编码差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11973471/