2014-12-13 55 views
0

我創建了一個註冊表單使用笨加密庫來存儲密碼的用戶如下:笨 - 登錄使用加密庫

$encrypted_password = $this->encrypt->encode($this->input->post('password')); 

我有通知,每次我們加密(事件,如果我們加密相同的密碼)加密功能會產生不同的輸出。

我的問題是: 當用戶嘗試登錄系統時,比較兩個加密密碼的最佳方式是什麼?我們知道每次加密時都會得到不同的加密字符串?

回答

0

看看這裏:https://ellislab.com/codeigniter/user-guide/libraries/encryption.html

$encrypted_string = 'APANtByIGI1BpVXZTJgcsAG8GZl8pdwwa84'; 

$plaintext_string = $this->encrypt->decode($encrypted_string); 

的encription類是使用對稱的編碼。所以要比較你必須解密密碼並進行比較。如果你想使用單向方法使用哈希,請糾正我,如果我錯了,但Codeigniter只支持到sha1,所以也許看看這裏的原生php所提供的:http://php.net/manual/en/function.hash.php

你也可以結合這兩種方法,散列和加密。

+0

CodeIgniter中的''do_hash''函數默認使用SHA1,但也可以使用''MD5''(如果指定的話) – ub3rst4r 2014-12-13 20:33:25

+1

這聽起來並不好聽:) – 2014-12-13 21:11:58