2011-10-31 86 views
0

在我以前的項目中,我創建了一個自定義加密函數來登錄。我如何在CI中使用它。這裏是我的代碼CodeIgniter自定義加密函數

function sha_password($username,$password){ 
$username = strtoupper($username); 
$password = strtoupper($password); 
return SHA1($username.':'.$password); 
} 

和我叫一樣,得到加密的密碼

$password = strtoupper(sha_password($username,$password));

我怎麼能做到這一點在CI工作? :?

回答

2

,你可以將它放在不同的地方:

  1. 模型 - 如果你有一個用戶,用戶$> getEncryptedPassword模型();

  2. 庫 - 在我的項目,我有一個具有加密功能libuser,所以我通過這 - $> libuser-> ENCRYPT_PASSWORD()調用它;

  3. 控制器(MY_Controller例如) - 創建一個函數和$這個 - 稱它爲> encrypt_user_password(..)

  4. 只是砸在了一些,將永遠被載入的文件,在配置或東西

  5. 如果你不打算改變它,只要做$ encpass = sha1(strtoupper($ username。':'。$ password));雖然我不會去那裏。

方案1和2最值得推薦的

+0

是的,我有。這個我的用戶模型'<?php 類Membership_model擴展了CI_Model函數sha_password($ username,$ password){ \t \t $ username = strtoupper($ username); \t \t $ password = strtoupper($ password); \t \t返回SHA1($ username。':'。$ password); \t} \t \t 功能驗證(){ \t \t $這 - > DB->其中( '用戶名',$這 - >輸入 - >交的( '用戶名')); \t \t $這 - > DB->其中( 'sha_pass_hash',$這 - >輸入 - >柱( '密碼')); \t \t $ query = $ this-> db-> get('account'); \t \t if($ query-> num_rows == 1){ \t \t \t return TRUE; \t \t} \t} }'我不知道如何使用sha_password功能ooz我是新手在CI。順便說一句感謝您的回答 – pico

+0

在你的情況下,爲了調用sha_password()方法,你需要Membership_model($ M-> sha_password())的一個實例,或者你可以把這個方法靜態(Membership_model :: sha_password() )。或者創建一個函數庫 – galchen

+0

當我使用這樣的函數時,我得到了一個致命的錯誤調用未分配函數function validate(){ \t \t $ this-> db-> where('username',$ this- >輸入 - >交的( '用戶名')); (''sha_pass_hash',sha_password($ this-> input-> post('password')));}};}}; \t \t $ query = $ this-> db-> get('account'); \t \t if($ query-> num_rows == 1){ \t \t \t return TRUE; \t \t} \t}'我怎麼用它? – pico