博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php aes128加密
阅读量:4612 次
发布时间:2019-06-09

本文共 1804 字,大约阅读时间需要 6 分钟。

//[加密数据]AES 128 ECB模式    public function aesEncrypt($str){        $screct_key = Yii::$app->params['encryptKey'];        $str = $this->addPKCS7Padding(trim($str));        $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_ECB),MCRYPT_RAND);        $encrypt_str =  mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $screct_key, $str, MCRYPT_MODE_ECB, $iv);        return bin2hex($encrypt_str);    }    //[解密数据]AES 128 ECB模式    public function aesDecrypt($str){        $screct_key = Yii::$app->params['encryptKey'];        //AES, 128 ECB模式加密数据        $str=hex2bin($str);        $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_ECB),MCRYPT_RAND);        $encrypt_str =  mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $screct_key, $str, MCRYPT_MODE_ECB, $iv);        return $this->stripPKSC7Padding($encrypt_str);    }    //[加密数据填充算法]    function addPKCS7Padding($source){        $source = trim($source);        $block = mcrypt_get_block_size('rijndael-128', 'ecb');        $pad = $block - (strlen($source) % $block);        if ($pad <= $block) {            $char = chr($pad);            $source .= str_repeat($char, $pad);        }        return $source;    }    //[解密数据移去填充算法]    function stripPKSC7Padding($text){       $len = strlen($text);          $c = $text[$len-1];          if(ord($c) <$len){              for($i=$len-ord($c); $i<$len; $i++){                  if($text[$i] != $c){                      return $text;                  }              }              return substr($text, 0, $len-ord($c));          }          }

 

public function actionIndex()    {        $c='yii2 php加密算法  aes128';        $a=$this->aesEncrypt($c);        $b=$this->aesDecrypt($a);        echo $a;        echo '
'; echo $b; echo '
'; }

 

 

转载于:https://www.cnblogs.com/xiong63/p/6801069.html

你可能感兴趣的文章
62 孩子们的游戏(圆圈中最后剩下的数)
查看>>
C语言基本语法——数组
查看>>
Servlet是什么?有什么用?
查看>>
Ubuntu系统截图方法介绍
查看>>
一个简单的链表结构 分类: C/C++ 数据结构与算...
查看>>
Ruby模块与类
查看>>
ant design 使用中的一些tips
查看>>
android Fragment浅谈
查看>>
设计模式可以戏说么?
查看>>
转&nbsp;-ALSA&nbsp;配置
查看>>
CSS margin 属性
查看>>
python之cmd模块
查看>>
2018年10月14日ICPC南京站参赛总结
查看>>
益智小游戏看你能否通关?
查看>>
poj 3122 Pie 二分答案
查看>>
DotNetCore 结合 Nginx 将网站部署到阿里云
查看>>
linux 源码包之脚本安装包的安装
查看>>
ASP.NET MVC 4 运行时异常,System.Web.Http.Description找不到
查看>>
UIAlertController的使用及在AppDelegate.m中添加不上的解决办法
查看>>
将一件事情进行到底
查看>>