PHP版DES算法加密数据(3DES)
可与java的DES(DESede/CBC/PKCS5Padding)加密方式兼容
不废话 直接上代码 ,这些代码都是从网上各个地方收集来的,加上了自己的理解和整理!
如有不对 请多多指出哈!
由于太多了 就不知道怎么感谢了
代码如下
<?php
/**
* Created by PhpStorm.
* Title:PHP版DES加解密类
* 可与java的DES(DESede/CBC/PKCS5Padding)加密方式兼容
* User: yaokai
* Date: 2017/11/13 0013
* Time: 19:03
*/
namespace App\Http\Libs;
class Des
{
private static $_instance = NULL;
var $key;//秘钥向量
var $iv;//混淆向量 ->偏移量
function __construct()
{
$this->key = env('DES_KEY');
$this->iv = env('DES_IV');
}
/**
*
* @User yaokai
* @return Des|null
*/
public static function share()
{
if (is_null(self::$_instance)) {
self::$_instance = new Des();
}
return self::$_instance;
}
/**
* 加密算法
* @User yaokai
* @param $input 要加密的数据
* @return string 返回加密后的字符串
*/
function encrypt($input)
{
//获得加密算法的分组大小 8
$size = mcrypt_get_block_size(MCRYPT_DES, MCRYPT_MODE_CBC); //3DES加密将MCRYPT_DES改为MCRYPT_3DES
//ascii 填充
$input = $this->pkcs5_pad($input, $size); //如果采用PaddingPKCS7,