<?php
/*** AES128加解密类* @author dy**/
class Aes{//密钥private $_secrect_key;public function __construct(){$this->_secrect_key =md5("password");}/*** 加密方法* @param string $str* @return string*/public function encrypt($str){//AES, 128 ECB模式加密数据$screct_key = $this->_secrect_key;$screct_key = base64_decode($screct_key);$str = trim($str);$str = $this->addPKCS7Padding($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 base64_encode($encrypt_str);}/*** 解密方法* @param string $str* @return string*/public function decrypt($str){//AES, 128 ECB模式加密数据$screct_key = $this->_secrect_key;$str = base64_decode($str);$screct_key = base64_decode($screct_key);$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);$encrypt_str = trim($encrypt_str);$encrypt_str = $this->stripPKSC7Padding($encrypt_str);return $encrypt_str;}/*** 填充算法* @param string $source* @return string*/private 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;}/*** 移去填充算法* @param string $source* @return string*/private function stripPKSC7Padding($source){$source = trim($source);$char = substr($source, -1);$num = ord($char);if($num==62)return $source;$source = substr($source,0,-$num);return $source;}
}
$c=new Aes();
echo $c->encrypt("sdsadadsa555444");
echo '<hr>';
echo $c->decrypt("dT3Fb9SfHkoOQpXeHxzJwQ==");
echo '<hr>';

php 自带加密函数 mcrypt_encrypt相关推荐

  1. openssl 测试加密卡_OpenSSL自带的aes_128_ecb加密函数——密文长度测试

    OpenSSL自带的aes_128_ecb加密函数--密文长度测试 发表于2017年11月29日 阅读人数(3608) 近来要用到对称加密,就是使用了openssl的库给文件加密,选择的128位的分块 ...

  2. 零基础带你学习MySQL—加密函数和系统函数(十六)

    零基础带你学习MySQL-加密函数和系统函数(十六)

  3. php 自带加密、解密函数

    php 自带的加密函数  不可逆的加密函数为:md5().crypt() md5() 用来计算 MD5 哈稀.语法为:string md5(string str); crypt() 将字符串用 UNI ...

  4. php自带加密解密函数

    不可逆的加密函数为:md5().crypt() md5() 用来计算 MD5 哈稀.语法为:string md5(string str); crypt() 将字符串用 UNIX 的标准加密 DES 模 ...

  5. php连接mySql,加密函数

    连接MySQL mysql_connect(servername,username,password); 面向对象: <?php $servername = "localhost&qu ...

  6. Jsrpc学习——网易云热评加密函数逆向

    点击上方"Python共享之家",进行关注 回复"资源"即可获赠Python学习资料 今 日 鸡 汤 烟笼寒水月笼沙,夜泊秦淮近酒家. 大家好,我是皮皮. 前几 ...

  7. 28 Oracle深度学习笔记——ORACLE自带DBMS函数包

    28.Oracle深度学习笔记--ORACLE自带DBMS函数包 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50830889 ...

  8. 28.Oracle深度学习笔记——ORACLE自带DBMS函数包

    28.Oracle深度学习笔记--ORACLE自带DBMS函数包 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50830889 ...

  9. php md5 64,php加密函数md5,crypt,base64_encode的用法介绍

    介绍下php中自带的加密函数 1,不可逆的加密函数为:md5().crypt() md5() 用来计算 MD5 哈稀.语法为:string md5(string str); crypt() 将字符串用 ...

最新文章

  1. paoding java_中文分词器-PaodingAnalyzer
  2. IP Header包
  3. flume源码学习4-SourceRunner与ExecSource实现
  4. linux centos7 安装使用 惠普 hp 打印机
  5. Kubernetes面试题超详细总结
  6. getElementsByTagName
  7. PPT设计里的小技巧
  8. 团队作业(五):冲刺总结
  9. 1991-2020中国科技统计年鉴(EXCEL版)
  10. 面试题猜想:1+1等于几?
  11. 数据质量管理方法有哪些
  12. 为什么程序员工资这么高?
  13. Xenu检测网站死链
  14. (2/2) sharex录制屏幕没有声音,升级高版本的 sharex
  15. C语言遥控器程序,单片机学习型遥控器程序详解(完整版)
  16. Solidworks二次开发平台 --- RyS.SwWorks [2015-09-18更新]
  17. 正在学习C++的屑人麻了
  18. Python中使用遍历在列表中添加字典的坑
  19. 基于过滤器实现异常处理的探索
  20. 微信小程序:修改按钮BUTTON尺寸

热门文章

  1. 【angular】实现一键复制的几种方法
  2. 一键复制多个文件夹内的文件到同一文件夹中
  3. NVIDIA GPU A100 Ampere(安培) 架构深度解析
  4. iOS视图成像理论及优化
  5. 亚马逊运营:拒绝爆款
  6. 国产+开源:可视化流程引擎助力企业建立流程管理体系
  7. 看完把学霸按在地上摩擦,计算机网络知识点总结(4)——题目
  8. matlab app designer学习笔记2——图片、表格的导入
  9. PyQt5 使用QCustomPlot2动态绘制频谱瀑布图(一)
  10. STM32串口通讯数据丢失原因分析及解决办法