【发布时间】:2015-05-12 09:22:16
【问题描述】:
我有一个用户数据库及其加密形式的密码。我想让用户使用用户名和密码登录网站。对于身份验证,我需要知道它们的加密类型,以便我可以将输入的密码与存储的密码匹配。我尝试了很多算法,但我无法锻炼加密机制。这是一个测试用例
原密码:alvin
数据库中的密码 :f9b0213127225c1c74d6662dee8acca297eff9e0
密码加密:sha1_v2.4.
盐:9j1jyse241v7cw0s8okkssgg448wgcogsggoww0
我想做的是从原始密码在数据库中创建密码。
关于如何将原始密码转换为数据库中密码的任何提示
P.S 该表是由 silverstripe CMS 创建的
编辑:
我们不再使用 silverstripe CMS 并将我们的网站转换为移动应用程序。因此,不能选择使用 silverstripe 或其功能。但是,我们正在使用包含所有成员数据的成员表,包括身份验证信息。
【问题讨论】:
-
如果数据库中的密码是散列的,那么忘记尝试解码它们;并且从不需要知道用户密码的值是什么
-
要弄清楚这一点或多或少是不可能的。只需在表中添加一个标志以确定用户是否已升级到您的新算法(例如 password_hash),如果没有,则强制他们在下次登录时更改密码。
-
SilverStripe 使用 Member 类开箱即用地处理这个问题。 SilverStripe 登录表单将为您处理所有这些问题。无需重新发明此功能。
-
@MarkBaker 我们不需要知道用户密码。我们需要能够从登录表单转换密码,对其进行加密,并将其与存储的加密密码进行比较,以验证用户身份。不幸的是,我们无法弄清楚确切的加密方式
-
@3dgoo 我们正在远离 silverstripe 但保留用户数据库,因此无法使用 silverstripe 函数或类
标签: php encryption passwords sha1 silverstripe