从设计密码迁移到java

从设计密码迁移到java,java,ruby-on-rails,authentication,devise,Java,Ruby On Rails,Authentication,Devise,我用Desive在rails中创建了一个系统。我需要将它的身份验证逻辑重写为java。问题是,我不知道rails是如何生成加密密码的。我需要这些知识来在java中创建类似的方法,以针对数据库中已经存储的加密密码进行身份验证 谢谢你的帮助 经过几个小时的挖掘,我发现用下面这句话就足够了: BCrypt.checkpw(plainTextPassword, encryptedPassword) 您不需要了解数据库存储字符串的哪个部分是salt、stretch等。我仍然不完全了解字符串的哪些部分:2

我用Desive在rails中创建了一个系统。我需要将它的身份验证逻辑重写为java。问题是,我不知道rails是如何生成加密密码的。我需要这些知识来在java中创建类似的方法,以针对数据库中已经存储的加密密码进行身份验证


谢谢你的帮助

经过几个小时的挖掘,我发现用下面这句话就足够了:

BCrypt.checkpw(plainTextPassword, encryptedPassword)
您不需要了解数据库存储字符串的哪个部分是salt、stretch等。我仍然不完全了解字符串的哪些部分:
2a$10$iab6dfjyd4mbhighwhb6yaojqswie1kljntl/bKQasb.ZJ.hj8VdTq
这是设计
123456
密码的存储版本;)


帮助我了解我需要做什么

你应该看看Desive的源代码。评论很好,所以不难看出发生了什么。您的起点可能是“path/to/designe/lib/designe/strategies/authenticatable.rb”。我找到了这个类,但它看起来像其他库的包装器。当从浏览器(请求)获取密码并创建encryptedPassword值时,我正在搜索行。在DeVICE的代码中,DeVICE/encryptors/sha512.rb似乎是发生魔术的文件。。嗯?有没有类似于Ruby的Desive但在Java中的东西?