2012-10-28 41 views
2

我有用devise在rails中创建的系统。我需要将它的身份验证逻辑重写为java。问题是,我不知道rails是如何加密生成的密码的。我需要这些知识在java中创建类似的方法,以便对已经在数据库中存储的加密密码进行身份验证。从设计密码迁移到java

Thx寻求帮助。

+1

你应该看看设计源代码。它有很好的评论,所以不难看出发生了什么。你的起点可能是'path/to/devise/lib/devise/strategies/authenticatable.rb'。 – cdesrosiers

+0

我找到了类,但它看起来像其他库的包装。我正在寻找来自浏览器(请求)的密码并创建encryptedPassword值时的行。 – Mateusz

+0

在devise的代码中挖掘,它看起来像devise/encryptors/sha512.rb是魔术发生的文件..嗯? – Mateusz

回答

3

diging的几个小时后,我发现,这是足够使用以下行:

BCrypt.checkpw(plainTextPassword, encryptedPassword) 

你并不需要了解哪些数据库的一部分存储的字符串是盐,延绵等我仍不很牛逼充分了解什么是串的片段:$2a$10$IAB6DfjYD4mbHiGWHB6YAOJqSwie1kLJNTl/bKQasb.ZJ.hj8VdTq这是设计的123456密码存储的版本;)

This post帮助我明白我需要做的。

+1

有没有类似Ruby的Devise,但在Java中? – Green