PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】


Posted in PHP onJune 08, 2019

本文实例讲述了PHP7实现和CryptoJS的AES加密方式互通。分享给大家供大家参考,具体如下:

PHP类:

class AES
{
  /**
   *
   * @param string $string 需要加密的字符串
   * @param string $key 密钥
   * @return string
   */
  public static function encrypt($string, $key)
  {
    // openssl_encrypt 加密不同Mcrypt,对秘钥长度要求,超出16加密结果不变
    $data = openssl_encrypt($string, 'AES-128-ECB', $key, OPENSSL_RAW_DATA);
    return base64_encode($data);
  }
  /**
   * @param string $string 需要解密的字符串
   * @param string $key 密钥
   * @return string
   */
  public static function decrypt($string, $key)
  {
    return openssl_decrypt(base64_decode($string), 'AES-128-ECB', $key, OPENSSL_RAW_DATA);
  }
  /**
   * 获取秘钥
   * @return string
   */
  public static function getSecretKey()
  {
    $str='xxx';//生成16位的字符窜
    return $str;
  }
}

JS的写法:

<script type="text/javascript" src="./bower_components/crypto-js/crypto-js.js"></script>
<script type="text/javascript">
  AesKey = 'xxxxx';//加密时用的key,跟php一样
  message='xxxxxxx';//加密后的字符窜
  var ECBOptions = {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7
  };
  var key = CryptoJS.enc.Utf8.parse(AesKey);
  var bytes = CryptoJS.AES.decrypt(message, key,ECBOptions);
  var originalText = bytes.toString(CryptoJS.enc.Utf8);
  console.log(originalText)
</script>
PHP 相关文章推荐
function.inc.php超越php
Dec 09 PHP
php XMLWriter类的简单示例代码(RSS输出)
Sep 30 PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
Dec 28 PHP
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
Oct 26 PHP
php curl模拟post请求小实例
Nov 13 PHP
PHP写的资源下载防盗链类分享
May 12 PHP
ThinkPHP分组下自定义标签库实例
Nov 01 PHP
ThinkPHP连接数据库的方式汇总
Dec 05 PHP
比较完整的微信开发php代码
Aug 02 PHP
php使用array_chunk函数将一个数组分割成多个数组
Dec 05 PHP
Yii框架视图、视图布局、视图数据块操作示例
Oct 14 PHP
如何判断微信付款码和支付宝付款码
Apr 01 PHP
php使用scandir()函数扫描指定目录下所有文件示例
Jun 08 #PHP
php中目录操作opendir()、readdir()及scandir()用法示例
Jun 08 #PHP
php中字符串和整数比较的操作方法
Jun 06 #PHP
使用PHPWord生成word文档的方法详解
Jun 06 #PHP
php/JS实现的生成随机密码(验证码)功能示例
Jun 06 #PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
Jun 06 #PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
Jun 05 #PHP
You might like
Php Cookie的一个使用注意点
2008/11/08 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
2018/07/30 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
PHP精确到毫秒秒杀倒计时实例详解
2019/03/14 PHP
PHP 数组操作详解【遍历、指针、函数等】
2020/05/13 PHP
jQuery选择器中含有空格的使用示例及注意事项
2013/08/25 Javascript
js的hasownproperty使用示例
2014/03/02 Javascript
深入理解javascript变量声明
2014/11/20 Javascript
jQuery对象和DOM对象之间相互转换的方法介绍
2015/02/28 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
2015/03/05 Javascript
详解javascript传统方法实现异步校验
2016/01/22 Javascript
Bootstrap select多选下拉框实现代码
2016/12/23 Javascript
discuz表情的JS提取方法分析
2017/03/22 Javascript
JavaScript 函数的定义-调用、注意事项
2017/04/16 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
2017/08/18 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
2017/09/08 Javascript
详解微信小程序审核不通过的解决方法
2018/01/17 Javascript
JS实现悬浮球只在一侧滑动并且是横屏状态下
2020/08/19 Javascript
利用Python中的输入和输出功能进行读取和写入的教程
2015/04/14 Python
Python和JavaScript间代码转换的4个工具
2016/02/22 Python
利用Python自动监控网站并发送邮件告警的方法
2016/08/24 Python
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
python 随机森林算法及其优化详解
2019/07/11 Python
使用python求解二次规划的问题
2020/02/29 Python
jupyter notebook 的工作空间设置操作
2020/04/20 Python
Square Off美国/加拿大:世界上最聪明的国际象棋棋盘
2018/12/06 全球购物
俄罗斯Sportmarket体育在线商店:用于旅游和户外活动
2019/11/12 全球购物
给领导的致歉信范文
2014/01/13 职场文书
《李广射虎》教学反思
2014/04/27 职场文书
公司担保书格式范文
2014/05/12 职场文书
机械设备与数控技术专业求职信
2014/08/10 职场文书
领导干部作风整顿个人剖析材料
2014/10/11 职场文书
上课讲话检讨书范文
2015/05/07 职场文书
SpringBoot 整合mongoDB并自定义连接池的示例代码
2022/02/28 MongoDB
Python中with上下文管理协议的作用及用法
2022/03/18 Python