thinkphp加密函數
1. thinkphp無法使用md5加密 array('password','md5',1,'funct
我記得thinkPHP里有自己的加密的函數的,你看看手冊吧,要不就是你參數給的不對
2. thinkphp資料庫配置信息加密怎麼處理
今天有一個朋友問我thinkphp的這個問題,剛好網路搜索到你這個問題。已經解決。就幫你解答一下這個問題。
首先我嘗試在入口文件封裝一個加密函數,我用php des 加密,然後在配置文件config.php調用。然後在控制器裡面使用,列印配置文件:mp(C());//輸出所有的配置文件信息, 雖然能看到正確的數據用戶名和密碼,但是會報錯。失敗告終。
我說一下我的解決方法。很簡單。
1:把配置文件裡面的用戶名,密碼,資料庫名瞎寫一寫,別人看到你的代碼的配置文件看到的就是錯誤的資料庫名和密碼了。比如:
'DB_NAME' => 'SB', // 資料庫名
'DB_USER' => 'ni_da_ye', // 用戶名
'DB_PWD' => 'da_da_bi', // 密碼
在每個控制器文件裡面。加入一段代碼。
比如你的IndexController.class.php文件。加下面的代碼。
/* 初始化方法*/
public function __construct(){
parent::__construct();
C("DB_NAME",decrypt('712349721937491237'));//資料庫名,
C('DB_USER',decrypt('712349721937491237'));//用戶名
C('DB_PWD',decrypt('712349721937491237'));//密碼
}
看清楚了嗎?
decrypt()這個函數就是我封裝的一個加密函數,親自測試沒有錯誤。可能會犧牲一些性能。但是保證了用戶名,密碼,資料庫名沒有泄露。甚至你都可以把資料庫連接地址也加密一下。希望能幫到你。
PHP加密函數可以考慮用des,aes這些可逆加密。別用什麼md4,md5.
3. thinkphp 密碼是怎麼加密的
md5 需要加密的時候只需要md5('需要加密的字元串')
4. thinkphp這個邏輯是如何執行加密了 是先執行md5($data['password'],然後在執行$data['password']=md5(..)
如果提交的數據里,password不為空,
對password進行md5加密: md5($data['password']);
加密後的字元串再賦值給password。
5. thinkphp中md5演算法位置
直接用md5函數就可以,md5是php函數,TP中沒有封裝,比如
$pwd=$_GET['pwd'];
echo$pwd=md5($pwd);
6. thinkphp怎麼加密url參數
/**
*系統加密方法
*@paramstring$data要加密的字元串
*@paramstring$key加密鑰
*@paramint$expire過期時間單位秒
*returnstring
*@author麥當苗兒<[email protected]>
*/
functionthink_encrypt($data,$key='',$expire=0){
$key=md5(empty($key)?C('DATA_AUTH_KEY'):$key);
$data=base64_encode($data);
$x=0;
$len=strlen($data);
$l=strlen($key);
$char='';
for($i=0;$i<$len;$i++){
if($x==$l)$x=0;
$char.=substr($key,$x,1);
$x++;
}
$str=sprintf('%010d',$expire?$expire+time():0);
for($i=0;$i<$len;$i++){
$str.=chr(ord(substr($data,$i,1))+(ord(substr($char,$i,1)))%256);
}
returnstr_replace(array('+','/','='),array('-','_',''),base64_encode($str));
}
/**
*系統解方法
*@paramstring$data要解的字元串(必須是think_encrypt方法加密的字元串)
*@paramstring$key加密密鑰
*returnstring
*@author當苗兒<[email protected]>
*/
functionthink_decrypt($data,$key=''){
$key=md5(empty($key)?C('DATA_AUTH_KEY'):$key);
$data=str_replace(array('-','_'),array('+','/'),$data);
$mod4=strlen($data)%4;
if($mod4){
$data.=substr('====',$mod4);
}
$data=base64_decode($data);
$expire=substr($data,0,10);
$data=substr($data,10);
if($expire>0&&$expire<time()){
return'';
}
$x=0;
$len=strlen($data);
$l=strlen($key);
$char=$str='';
for($i=0;$i<$len;$i++){
if($x==$l)$x=0;
$char.=substr($key,$x,1);
$x++;
}
for($i=0;$i<$len;$i++){
if(ord(substr($data,$i,1))<ord(substr($char,$i,1))){
$str.=chr((ord(substr($data,$i,1))+256)-ord(substr($char,$i,1)));
}else{
$str.=chr(ord(substr($data,$i,1))-ord(substr($char,$i,1)));
}
}
returnbase64_decode($str);
}
7. thinkphp能夠對源代碼加密嗎
不能,thinkphp只是一個php框架,php源碼的加密可以看看這個:Zend Guard
8. thinkphp MD5加密問題
AUTH_CODE這個參數是自定義的,每個網站的參數都不一樣,有些網站為了安全,這個值還是隨機數,這樣的話,就打打加強了開源程序的安全性。encrypt這個函數在這里就是讀取配置文件中的隨機數和MD5加密之後的文件再做個二次加密,所以就很安全咯
是否可以解決您的問題?
9. 關於thinkphp的md5加密
一般都是這樣的。