2015-07-06 75 views
-1

哈希密碼爲明文口令我救了密碼如下:顯示CakePHP中

function hashPassword() { 
    if (!empty($this->data[$this->alias]['password'])) { 
      $passwordHasher = new SimplePasswordHasher(array('hashType' => 'sha256')); 
      $this->data[$this->alias]['password'] = $passwordHasher->hash(
       $this->data[$this->alias]['password'] 
      ); 
     } 
    } 

    function setIP() { 
      /* IP address insert */ 
     $exec = exec("hostname"); //the "hostname" is a valid command in both windows and linux 
     $hostname = trim($exec); //remove any spaces before and after 
     $ip = gethostbyname($hostname); //resolves the hostname using local hosts resolver or DNS 
     $this->data['User']['ip'] = $ip; 
    } 

    function beforeSave($options = array()) { 
     $this->hashPassword(); 
     $this->setIP(); 
     return true; 
    } 

現在我怎麼能證明此密碼爲純文本。即:下面的代碼檢索用戶表的所有信息:

function manage_user() { 
     $this->loadModel('User'); 
     $users = $this->User->find('all'); 
     $this->set(compact('users')); 
    } 

但密碼是哈希格式我怎樣才能得到它作爲純文本? 任何建議將不勝感激。

+3

沒有什麼情況下,你應該顯示爲純文本的密碼... – Tom

+3

你不能 - 這是散列的整點。一旦它存儲在數據庫中作爲散列,你不能將其轉換爲純文本 –

+0

說,我想顯示超級管理員登錄時管理用戶的所有用戶的密碼。 –

回答

3

哈希的要點是你不能反向設計密碼。因此,當數據庫被黑客入侵或泄露時,密碼不會造成傷害。

任何網站顯示你自己的密碼有一個嚴重的安全問題,我不會使用它。

因此,答案是:不,你不能,你不應該