搜尋
首頁php教程php手册php史上公认最安全的正反加密解密函数

php史上公认最安全的正反加密解密函数

Jun 13, 2016 am 11:40 AM
php使用函數加密解密安全文章現在解密

之前写过一个加解密的文章,也能凑合着使用, 现在为了安全, 用php写了一个triple des(3DES)的正反加解密函数. 3DES是公认的最安全的加密解密函数了,只是可惜的是php没有提供这样现成的函数,于是乎自己写了一个3DES版本的方法,3DES有很多版本,该版本采用的是ECB模式,用PKCS7补码,base64做密文,安全等级高,一般使用该函数只要修改其中的key即可.

测试:
echo (des3crypt( “龙哥博客”,’ENCODE’));
echo “
“;
echo (des3crypt( “bxC46TETFEZFpTS1DClzpg==”,’DECODE’));
echo “
“;

/**
* 加解密函数
* @param $str
* @param $type
* @param $key
*/
function des3crypt($str,$type = ‘ENCODE’,$key = ‘AXNU7SLKJ7HKJm+x4bfBJSJQKde’){
if(empty($str) && $str != 0){
return false;
}
$td = mcrypt_module_open( MCRYPT_3DES, ”, MCRYPT_MODE_ECB, ”);
$key = base64_decode($key);
mcrypt_generic_init($td, $key,’12345678′);
if(strtoupper($type) == ‘ENCODE’){
$str = padding( $str );
$data = mcrypt_generic($td, $str);
}elseif(strtoupper($type) == ‘DECODE’){
$str = base64_decode($str);
$data = mdecrypt_generic($td, $str);
}
//加密
mcrypt_generic_deinit($td);
//结束
mcrypt_module_close($td);
if(strtoupper($type) == ‘ENCODE’){
$data = removeBR(base64_encode($data));
}elseif(strtoupper($type) == ‘DECODE’){
$data = removePadding($data);
}
return $data;
}

//删除填充符
function removePadding( $str ){
$len = strlen( $str );
$newstr = “”;
$str = str_split($str);
for ($i = 0; $i if (!in_array($str[$i],array(chr(0),chr(1),chr(2),chr(3),chr(4),chr(5),chr(6),chr(7),chr(8)))){
$newstr .= $str[$i];
}
}
return $newstr;
}

//填充密码,填充至8的倍数,pkcs7 | pkcs5
function padding( $str ,$pkcs = 5){
if($pkcs == 5){
$pad = 8 – (strlen($str) % 8);
$str .= str_repeat(chr($pad), $pad);
}elseif($pkcs == 7){
$len = 8 – strlen( $str ) % 8;
for ( $i = 0; $i $str .= chr( 0 );
}
}
return $str ;
}

/**
* http://52blogger.com 龙哥博客版权所有,欢迎转载,转载请务必注明来源,违版必究.
*/

//删除回车和换行
function removeBR( $str ){
$len = strlen( $str );
$newstr = “”;
$str = str_split($str);
for ($i = 0; $i if ($str[$i] != ‘\n’ and $str[$i] != ‘\r’){
$newstr .= $str[$i];
}
}
return $newstr;
}

文章来源:龙哥博客 原文:http://www.52blogger.com/archives/821

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。