使用php生成密码哈希

时间:2015-03-10 19:13:05

标签: php encryption passwords sha1 silverstripe

我有一个用户数据库及其加密形式的密码。我想让用户使用用户名和密码登录该站点。对于身份验证,我需要知道它们的加密类型,以便我可以将输入的密码与存储的密码相匹配。我尝试了很多算法,但我无法锻炼加密机制。这是一个测试用例

原始密码:alvin

数据库中的密码:f9b0213127225c1c74d6662dee8acca297eff9e0

密码加密:sha1_v2.4。

:9j1jyse241v7cw0s8okkssgg448wgcogsggoww0

我想要做的是从原始密码在DB中创建密码。

有关如何将原始密码转换为DB中的密码的任何提示

P.S该表由silverstripe CMS创建

修改

我们不再使用silverstripe CMS并将我们的网站转换为移动应用程序。因此,使用silverstripe或其功能不是一种选择。但是,我们使用成员表,其中包含所有成员的数据,包括身份验证信息。

1 个答案:

答案 0 :(得分:3)

OP的评论中有很多仇恨。但它被误导了 - OP 没有尝试解码 任何东西(并在论坛上更好地解释了它:http://www.silverstripe.org/community/forums/migrating-a-site-to-silverstripe/show/101337

简而言之,就是尝试使用SilverStripe的数据库从外部 对用户进行身份验证(因此直接使用成员类isn'事情)。

提供实际答案:

加密方法存储在Member表中,默认情况下为'blowfish',并且可以按用户更改。 您需要三个数据字段:

  • Member.PasswordEncryption
  • Member.Salt
  • Member.Password

第一个定义如何使用第二个,然后允许计算第三个(并因此检查)。

合理标准的东西。有关更详细/特定的信息,请参阅此处定义的类(参见“直接已知的子类”): http://api.silverstripe.org/3.1/class-PasswordEncryptor.html