如何在Java中为自定义sha256回合重现php Crypt()

时间:2019-04-05 14:40:46

标签: java hash cryptography

我有一个php脚本,用于存储crypt()的结果,自定义结果将10000舍入并加一些已经存在的盐。

代码如下:

echo crypt('rasmuslerdorf', '$5$rounds=10000$usesomesillystringforsalt$');

输出为

  

$ 5 $ rounds = 10000 $ usesomesillystri $ CaVZTpnmHfz9Fi6zjGJmSAAwwABsSqSJbtzdlfvVC10

Witch既不是十六进制也不是二进制的哈希,它似乎是Crypt3的输出。

问题是“如何在Java中为相同的输入获取相同的字符串?”

目前,所有测试过的MessageDigest和SO答案都无法使用,因为它直接以六进制打印哈希值(也比较麻烦)。

1 个答案:

答案 0 :(得分:0)

好吧,终于能够找到一种获得相同输出的方法。

使用Apache Commons Crypt,我得到了与salt round和其他所有内容相同的输出。

import org.apache.commons.codec.digest.Crypt;
return Crypt.crypt("rasmuslerdorf", "$5$rounds=10000$usesomesillystringforsalt$");

请给我我的:

  

$ 5 $ rounds = 10000 $ usesomesillystri $ CaVZTpnmHfz9Fi6zjGJmSAAwwABsSqSJbtzdlfvVC10