首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使php中的bcrypt与java中的jbcrypt兼容?

如何使php中的bcrypt与java中的jbcrypt兼容?
EN

Stack Overflow用户
提问于 2017-06-18 19:12:52
回答 2查看 3.1K关注 0票数 3

我想在php中创建注册页面,并使用bcrypt将密码散列并放入数据库。

我还想在Java中创建一个登录系统,并使用jbcrypt获得相同密码中的密码。

我怎样才能使jbcrypt和bcrypt在php中兼容,使用相同的盐。

EN

回答 2

Stack Overflow用户

发布于 2017-06-23 11:53:43

您可以查看以下内容:

https://github.com/ircmaxell/password_compat/issues/49

这对我很有效:

代码语言:javascript
复制
public static void main(String[] args) {
    //Laravel bcrypt out
    String hash_php = "$2y$10$ss9kwE8iSIqcJOAPhZR0Y.2XdYXJTFJ1/wGq6SUv74vULE7uhKUIO".replaceFirst("2y", "2a");
    System.out.println("hash php " + hash_php);
    //String a_hash = BCrypt.hashpw("123456", BCrypt.gensalt());
    //System.out.println("Encrypt " + a_hash);
    if (BCrypt.checkpw("123456", hash_php)) {
        System.out.println("It matches");
    } else {
        System.out.println("It does not match");
    }
    //mtPruebaRecuperarClave();

}

控制台- OutPut

我希望这对你有帮助。

票数 5
EN

Stack Overflow用户

发布于 2019-09-25 00:29:24

如果从散列中删除前7个字符($2y$10$ / $2a$10$),其余字符应该是相同的,无论您使用的是哪种编程语言。生成的散列的第一个字符是一个前缀,它告诉我们有关散列算法的更多信息。

在您的示例中,$2y$$a2$定义了散列的算法,而10$是散列生成的“成本”(重复应用散列算法的次数或类似的东西)。

If you want to learn more about the prefixes in the bcrypt generated hashes, read this article

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44614380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档