更改sha1密码mysql和Cakephp登录

时间:2014-01-08 22:35:25

标签: mysql cakephp sha1

我是CakePHP的新手。 我最近接手了一个在CakePHP v 1.2.4.8284中构建的项目。 我正在尝试更改登录页面的密码。 只有一个用户存储在mysql数据库中。

字段 - id,用户名,密码(varchar 40),nacl(char(6),firstname,lastname

在phpAdmin中,我尝试在使用SHA1功能时更改密码,但这不起作用。 我甚至尝试过创建新用户,但新用户信息也无法正常工作。

我已将其缩小到以下if语句中的usercontroller

if ($results && $results['User']['password'] == sha1($results['User']['nacl'] . sha1($this->data['User']['password'])))

看起来数据库中的密码应该有sha1(nacl field) + sha1(password field)。 但它全部都包含在sha1中。

我不确定加密是如何工作的。

任何帮助都将不胜感激。

提前致谢。

这是完整的登录功能。

function login()
{
    $this->set('error', false);
    if ($this->Session->read('user'))
    {
        $this->redirect('/test-folder/');
    } else {
        $this->User->set($this->data);
        if ($this->data) {
            //$results = $this->User->findByUsername($this->data['User']['username']);
            $results = $this->User->find('first', array(
                'conditions' => array('username' => $this->data['User']['username'])
            ));
            if ($results && $results['User']['password'] == sha1($results['User']['nacl'] . sha1($this->data['User']['password']))) {
                $this->Session->write('user', $this->data['User']['username']);
                $this->Session->write('admin', $results['User']['group']);
                $this->redirect('/test-folder/');
            } else {
                $this->set('error', true);
            }
        }
    }
}

3 个答案:

答案 0 :(得分:1)

  • 在Config / core.php中获取Security.salt:'securitysaltvalue'
  • 输入密码'yourplainpassword'

    更新用户SET密码= SHA1(CONCAT('securitysaltvalue','yourplainpassword'))WHERE id = 123

答案 1 :(得分:0)

根据您的代码,您应该能够使用以下步骤生成新密码:

1)生成密码,例如“test123”

2)获取要更改密码的用户的ID,例如123

3)在phpMyAdmin中执行此SQL(替换我的演示值!!!)

UPDATE user SET password = CONCAT( SHA1(nacl), SHA1("test123")) WHERE id = 123

请在任何更改之前在该表上进行完整的数据库转储。更好的是,测试一些开发实例。

答案 2 :(得分:0)

@StefanoDP的答案有效,但表名是'用户',而不是'用户'。所以命令应该是:

UPDATE users SET password=SHA1(CONCAT('securitysaltvalue','yourplainpassword')) WHERE id=123;

不要忘记在声明的末尾添加分号。