php对称算法_PHP简单对称加密算法之加密、简单对称加密算法之解密,以及简单的混淆加密。...

PHP简单对称加密算法之加密、简单对称加密算法之解密,以及简单的混淆加密。

平时我们使用的PHP加密方法都是一些不可逆的加密函数为:md5()、sha1()、crypt()等。md5() 用来计算 MD5 哈稀。语法为:md5(); crypt() 将字符串用 UNIX 的标准加密 DES 模块加密。这是单向的加密函数,无法解密。

可逆转的加密有:base64_encode()、urlencode() 相对应的解密函数:base64_decode() 、urldecode() 。base64_encode() 将字符串以 MIME BASE64 编码。此编码方式可以让中文字或者图片也能在网络上顺利传输。 它的解密函数为:base64_decode(); 将复回原样。urlencode() 将字符串以 URL 编码。例如空格就会变成加号。它的解密函数为:urldecode(); 将复回原样。

1、简单对称加密算法之加密、 简单对称加密算法之解密

/**

*简单对称加密算法之加密

* @param String $string 需要加密的字串

* @param String $skey 加密EKY

*/

function encode($string = '', $skey = 'cxphp') {

if (!is_numeric($string) && empty($string)) {

return '';

}

$strArr = str_split(base64_encode($string));

$strCount = count($strArr);

foreach (str_split($skey) as $key => $value) {

$key 

}

return str_replace(array('=', '+', '/'), array('O0O0O', 'o000o', 'oo00o'), join('', $strArr));

}

/**

* 简单对称加密算法之解密

* @param String $string 需要解密的字串

* @param String $skey 解密KEY

*/

function decode($string = '', $skey = 'cxphp') {

if (!is_numeric($string) && empty($string)) {

return '';

}

$strArr = str_split(str_replace(array('O0O0O', 'o000o', 'oo00o'), array('=', '+', '/'), $string), 2);

$strCount = count($strArr);

foreach (str_split($skey) as $key => $value) {

$key <= $strCount && $strArr[$key][1] === $value && $strArr[$key] = $strArr[$key][0];

}

return base64_decode(join('', $strArr));

}

/**

* [randcode 获取0-9,a-z,A-Z的随机数]

* @param  integer $length [长度]

*/

function randcode($length = 6) {

$range_arr = array_merge(range('a', 'z'), range('A', 'Z'), range(0, 9));

shuffle($range_arr);

$range_arr = array_splice($range_arr, 0, $length);

return implode('', $range_arr);

}

2、自定义混淆加密、解密方法

//加密参数

private $scret_key= 'abc';

/**

* [encode加密]

* @param  string $value [加密字段]

*/

private function encode($value = '') {

//如果是空则返回空

if(empty($value)){

return '';

}

//返回加密的随机字符串

return $value . $this->scret_key . md5(randcode(10));

}

/**

* [decode解密]

* @param  string $value [解密字段]

*/

private function decode($value = '') {

//如果是空则返回空

if(empty($value)){

return '';

}

//返回加密的随机字符串

$res = explode($this->scret_key, $value);

return $res[0];

}

3、使用

1)、加密:先混淆加密,再对称加密

php对称算法_PHP简单对称加密算法之加密、简单对称加密算法之解密,以及简单的混淆加密。..._第1张图片

php对称算法_PHP简单对称加密算法之加密、简单对称加密算法之解密,以及简单的混淆加密。..._第2张图片

2)、解密:先对称解密,再混淆解密

php对称算法_PHP简单对称加密算法之加密、简单对称加密算法之解密,以及简单的混淆加密。..._第3张图片

你可能感兴趣的:(php对称算法)