【问题标题】:PHP crypt(pass, salt) alternative in Java - Blowfish algorithmJava 中的 PHP crypt(pass, salt) 替代方案 - Blowfish 算法
【发布时间】:2014-06-27 13:12:28
【问题描述】:

我在 php 服务器上使用这样的函数 crypt:

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

通过 Blowfish 方法对密码进行哈希处理。

我正在寻找 crypt 密码的 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()));

感谢您的每一个想法或回答。

【问题讨论】:

    标签: java php salt blowfish crypt


    【解决方案1】:

    不是您问题的答案,但可能会有所帮助:

    有一个 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() 使用仅基于这些加密密码的算法,但通过它们将输入管道传输数千次以获得良好的哈希值。

    【讨论】:

      【解决方案2】:

      【讨论】:

        猜你喜欢
        • 2018-09-05
        • 2014-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多