我有两个项目。panager和panager-android。我使用漩涡哈希算法,并且使用相同的数据 panager 给出的结果与 panager-android 不同。panager 是用 python 编写的,而 panager-android (guess) 是用 java 编写的。我是 Java 新手,所以放轻松:P
在 python 中,我使用在网上找到的模块(whirlpool.py),在 java 中,我使用 jacksum 库。
Whirlpool 规范有不同版本,它们为相同的输入生成不同的输出。看起来whirlpool.py
可能正在实现原始的 Whirlpool(称为“Whirlpool-0”),而在 panager-android 中您使用的是 Whirlpool-2:
AbstractChecksum encode = JacksumAPI.getChecksumInstance("whirlpool2");
尝试将其更改为“whirlpool0”,看看它是否与您的 Python 实现匹配。如果做不到这一点,请尝试“whirlpool1”。
对于给定的测试输入,维基百科已经知道每个版本的 Whirlpool 哈希值,您可以使用它来识别有问题的 Whirlpool 实现的版本,或者找出它是否完全错误和损坏。