2013-07-24 2 views
0

Итак, у меня есть учетная запись в моем веб-приложении, когда я пытаюсь изменить пароль, который перенаправляет меня на страницу с ошибкой, и я не могу понять, почему. Я хочу изменить пароль на одну из учетных записей.Изменение пароля пользователя через PHPmyadmin

dc7f3da29862d3d5b3d3cd32356659ea7e85ed032b9c5144f5

Пароль хранится как это (пароль только password, так что я не против этого быть здесь)

{ 
          $result = $this->User->editUser($id,$username, $email, $name, $surname, $phone, $hash); 
          if ($result == true) 
          { 
           $this->set('has_message',true); 
           $this->set('css_name','success'); 
           $this->set('errors',"<p>User successfully updated.</p>"); 
           $profile = $this->User->getUserbyid($id); 
           $this->set('profile',$profile); 
           $this->User->closeConnection(); 
          } 
          else 
          { 
           $this->User->closeConnection(); 
           $this->set('has_message',true); 
           $this->set('css_name','error'); 
           $this->set('errors',"<p>Something went wrong please try again.</p>"); 
          } 
         } 

Это код для редактирования учетной записи пользователя, я новый для PHP, поэтому, пожалуйста, скажите мне, есть ли еще какой-нибудь код, который вам нужен ... Я застреваю, пытаясь исправить эту ошибку .... и, если возможно, я просто изменил бы пароль в PHPMyAdmin вместо этого, поскольку я не против, если пользователи не могут изменить свой пароль.

методы хеширования:

$salt = $this->create_salt_password($username); 
       $hash = $salt . $password; 
       for ($i = 0; $i < 100000; $i ++) 
       { 
        $hash = hash('sha256', $hash); 
       } 
       $hash = $salt . $hash; 

И в config.php Соленого

define('AUTH_SALT','wcRwGxDzULe?s3J%R^[email protected])r}xfXpESul5hC,z^ze.oz*1E|ys,Bk,:Q/z_I&M9..'); 

и

public function create_salt_password($username) 
     { 
     /** Creates a hash value for the password using 
      a prefixed random unique identifier value with a static characters and the username 
     */ 
      $salt = hash('sha256', uniqid(mt_rand(), true) .AUTH_SALT .strtolower($username)); 
      return $salt; 
     } 

Войти Сценарий:

$salt = substr($results->password, 0, 64); 
       $password = $salt . $password; 
       for ($i = 0; $i < 100000; $i ++) 
       { 
        $password = hash('sha256', $password); 
       } 
+1

'Я застреваю, пытаясь исправить эту ошибку' - вы не сказали нам, какую ошибку вы получаете. –

+1

'100000' sha256 хеш-итерации, но такая же соль для каждого пользователя. – Paulpro

+0

@Paulpro Я не прошу прощения? – germainelol

ответ

0

Если вы хотите сменить пароль с помощью phpmyadmin, сначала узнайте, какой метод хеширования используется для хранения пароля в базе данных (md5, sha1). Затем сгенерируйте пароль, используя онлайн-хеш-инструменты, например sha1-online.com, или просто получите хешированный пароль, используя php-скрипт, и сохраните его в своей базе данных.

+0

Ive обновил мой ответ методами для сохранения нового пользователя, не могли бы вы объяснить, как разберись с этим? Я пробовал использовать сайт sha1-online.com, который вы связали, но не повезло создать ту же строку, что и я, выше, чем – germainelol

+0

. Я заметил, что строка, которую вы опубликовали, имеет длину 50 символов, но sha1 имеет длину 40 символов. Используемая структура может использовать внешнюю логику для хеширования пароля до 50 символов. Вам нужно найти функцию из вашей структуры, которая используется для хеширования пароля. Какую структуру вы используете? Список разных размеров хеширования можно найти по адресу http://www.php.net/manual/en/function.hash.php#111734 – Konsole

+0

Я добавил внешнюю функцию к сообщению – germainelol

Смежные вопросы