Java中的PHP crypt(pass,salt)替代方案 - Blowfish算法

时间:2014-05-09 17:27:07

标签: java php salt blowfish crypt

我正在使用php服务器功能crypt这样:

$hash = crypt($password, '$2y$10$' . $salt);

用Blowfish方法制作密码哈希。

我正在寻找与密码密码相同的java。

我找到了这段代码,但我不知道在哪里添加$ salt。更多信息:

String key = "abcd";
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), "Blowfish");
Cipher cipher = Cipher.getInstance("Blowfish");
cipher.init(cipher.ENCRYPT_MODE, keySpec);
return DatatypeConverter.printBase64Binary(cipher.doFinal(key.getBytes()));

感谢每个想法或答案。

2 个答案:

答案 0 :(得分:0)

不是你问题的答案,但也许有帮助:

Apache Commons Codec库包含一个Linux crypt(3)兼容函数,至少基于des,md5,sha256和sha512的crypt()算法,以防你真的不需要使用河豚但只是更强大的东西比传统的基于DES的哈希值(使用sha512): http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Md5Crypt.java?view=markup

还有其他源代码实现了Blowfish算法但它在C中: http://doxygen.postgresql.org/crypt-blowfish_8c_source.html

正如你所看到的,crypt()使用的算法只基于那些加密密码,但是通过它们输入几个时间来获得一个很好的哈希值。

答案 1 :(得分:0)