使用 php 生成密码哈希

Generate the password hash using php

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

原密码: alvin

数据库中的密码:f9b0213127225c1c74d6662dee8acca297eff9e0

密码加密:sha1_v2.4.

:9j1jyse241v7cw0s8okkssgg448wgcogsggoww0

我想做的是根据原始密码在数据库中创建密码。

关于如何将原始密码转换为数据库中的密码的任何提示

P.S table 由 silverstripe CMS 创建

编辑:

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

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

简而言之,正在尝试验证来自外部来源的用户,使用SilverStripe 的数据库(因此直接使用 Member class 不是问题)。

提供实际答案:

加密方法存储在成员 table 上,默认情况下为 'blowfish',并且可以根据用户更改。 您需要三个字段的数据:

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

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

相当标准的东西。有关更多 detailed/specific 信息,请参见此处定义的 classes(参见“直接已知子 classes”): http://api.silverstripe.org/3.1/class-PasswordEncryptor.html