php aes加密中文,PHP AES加密 - 菜鸟要飞啊的IT小窝 - OSCHINA - 中文开源技术交流社区...

1、aes加密类

namespace app\common;

//也可以直接用define定义常量

//define('KEY','12345');

//define('IV','12345');

/**

* Aes 对称加密

*/

class Aes {

const KEY = '12345';

const IV = '12345';

/**

* 加密 ECB - 128 - addPkcs7Padding

*/

public function encrypts($data)

{

// $encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, self::KEY, $this->addPkcs7Padding($data), MCRYPT_MODE_ECB,self::IV);//php7.1以下版本用法

return base64_encode(openssl_encrypt($data,"AES-128-ECB",self::KEY,OPENSSL_RAW_DATA));//php7.1以上版本用法

}

/**

* 解密

*/

public function decrypts($data)

{

// $data =base64_decode($data);

// return $this->stripPkcs7Padding(mcrypt_decrypt(MCRYPT_RIJNDAEL_128, self::KEY, $data, MCRYPT_MODE_ECB, self::IV));//php7.1以下版本用法

return openssl_decrypt(base64_decode($data),"AES-128-ECB",self::KEY,OPENSSL_RAW_DATA);//php7.1以上版本用法

}

public function addPkcs7Padding($string, $blocksize = 16)

{

$len = strlen($string); //取得字符串长度

$pad = $blocksize - ($len % $blocksize); //取得补码的长度

$string .= str_repeat(chr($pad), $pad); //用ASCII码为补码长度的字符, 补足最后一段

return $string;

}

public function stripPkcs7Padding($string){

$slast = ord(substr($string, -1));

$slastc = chr($slast);

$pcheck = substr($string, -$slast);

if(preg_match("/$slastc{".$slast."}/", $string)){

$string = substr($string, 0, strlen($string)-$slast);

return $string;

} else {

return false;

}

}

}

2、使用。我是用的Yii框架(但基本用法都差不多)

use app\common\Aes;

//......

$aes = new Aes();

$res = $aes->encrypts($data);//加密

//$res = $aes->decrypts($data);//解密

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值