我正在使用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()));
感谢每个想法或答案。
答案 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)