您现在的位置是:网站首页>>PHP>>php
php DES的加密和解密
发布时间:2018-09-05 16:56:26作者:wangjian浏览量:1119点赞量:0
我使用的是Yii框架 可根据不同的框架进行变换
编写一个des的加密解密组件<?php
/**
* Created by PhpStorm.
* User: wj
* Date: 2018/09/05
* Time: 16:50
*/
namespace app\components;
/**
+------------------------------------------------------------------------------
* DES 加密解密类
+------------------------------------------------------------------------------
*/
class DesComponents
{
public $desKey;
public function __construct()
{
$this->desKey = '12345678';
}
//DES 加密
public function des($encrypt) {
$iv = mcrypt_create_iv ( mcrypt_get_iv_size ( MCRYPT_DES, MCRYPT_MODE_ECB ), MCRYPT_RAND );
$passcrypt = mcrypt_encrypt ( MCRYPT_DES, $this->desKey, $encrypt, MCRYPT_MODE_ECB, $iv );
return $passcrypt;
}
/**
* 将二进制数据转换成十六进制
*/
public function asc2hex($temp) {
return bin2hex ( $temp );
}
/**
* 十六进制转换成二进制
*
* @param string
* @return string
*/
public function hex2asc($temp) {
$len = strlen ( $temp );
$data = '';
for($i = 0; $i
$data .= chr ( hexdec ( substr ( $temp, $i, 2 ) ) );
return $data;
}
//DES解密
public function un_des($decrypt) {
$iv = mcrypt_create_iv ( mcrypt_get_iv_size ( MCRYPT_DES, MCRYPT_MODE_ECB ), MCRYPT_RAND );
$decrypted = mcrypt_decrypt ( MCRYPT_DES, $this->desKey, $decrypt, MCRYPT_MODE_ECB, $iv );
return $decrypted;
}
}
使用des加密解密组件
/**
* Created by PhpStorm.
* User: wj
* Date: 2018/09/05
* Time: 16:05
* des加密解密
*/
namespace app\controllers;
use app\components\DesComponents;
use yii\web\Controller;
class DesController extends Controller
{
public $desKey = '12345678';
public function actionIndex()
{
$str = '123456';
//加密
$des = new DesComponents();
$value = $des->des($str);
$value = $des->asc2hex($value);
var_dump($value);
echo '
';
//解密
$value = $des->hex2asc($value);
$value = $des->un_des($value);
$value = trim($value);
var_dump($value);
}
}
现象:
0
+1