2013-07-24 94 views
0

因此,我在我的Web應用程序上有一個帳戶,當我嘗試更改密碼時,它將我重定向到錯誤頁面,我找不到原因。我想將密碼更改爲其中一個帳戶。通過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

我更新了我的答案與保存新用戶的方法,你能解釋如何解決這個問題?我試過使用您鏈接的sha1-online.com網站,但沒有運氣生成相同的字符串,因爲我發佈的日期是 – germainelol

+0

我注意到您發佈的字符串長度爲50個字符,但sha1的長度爲40個字符。您正在使用的框架可能使用外部邏輯將密碼散列爲50個字符。你需要在你的框架中找到用來散列密碼的函數。你在使用哪個框架?不同哈希大小的列表可以在http://www.php.net/manual/en/function.hash.php#111734 – Konsole

+0

找到。我在文章 – germainelol