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 相关文章推荐
ThinkPHP与PHPExcel冲突解决方法
Aug 08 PHP
分享下PHP register_globals 值为on与off的理解
Sep 26 PHP
thinkphp控制器调度使用示例
Feb 24 PHP
PHP 读取和编写 XML
Nov 19 PHP
jQuery Mobile + PHP实现文件上传
Dec 12 PHP
php实现表单多按钮提交action的处理方法
Oct 24 PHP
如何写php守护进程(Daemon)
Dec 30 PHP
深入解析PHP的Yii框架中的缓存功能
Mar 29 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
Oct 13 PHP
php事务回滚简单实现方法示例
Mar 28 PHP
PHP递归删除多维数组中的某个值
Apr 17 PHP
phpinfo无法显示的原因及解决办法
Feb 15 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
超神学院:鹤熙已踏入神圣领域,实力不比凯莎弱
2020/03/02 国漫
用PHP实现小写金额转换大写金额的代码(精确到分)
2012/01/10 PHP
领悟php接口中interface存在的意义
2013/06/27 PHP
yii2实现分页,带搜索的分页功能示例
2017/01/07 PHP
javascript 面向对象编程基础:继承
2009/08/21 Javascript
JavaScript Object的extend是一个常用的功能
2009/12/02 Javascript
基于Jquery插件开发之图片放大镜效果(仿淘宝)
2011/11/19 Javascript
如何判断鼠标是否在DIV的区域内
2013/11/13 Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
2014/06/23 Javascript
javascript实现简单的省市区三级联动
2015/05/14 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
2015/08/18 Javascript
JS实现同一个网页布局滑动门和TAB选项卡实例
2015/09/23 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
微信小程序 Tab页切换更新数据
2017/01/05 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
JS正则表达式验证中文字符
2017/05/08 Javascript
vue2.0 根据状态值进行样式的改变展示方法
2018/03/13 Javascript
javascript 设计模式之享元模式原理与应用详解
2020/04/08 Javascript
使用vue cli4.x搭建vue项目的过程详解
2020/05/08 Javascript
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
js实现日历
2020/11/07 Javascript
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
Python解析json文件相关知识学习
2016/03/01 Python
python3+mysql查询数据并通过邮件群发excel附件
2018/02/24 Python
python整合ffmpeg实现视频文件的批量转换
2019/05/31 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
2019/07/24 Python
pycharm通过ssh连接远程服务器教程
2020/02/12 Python
python语言是免费还是收费的?
2020/06/15 Python
python使用numpy中的size()函数实例用法详解
2021/01/29 Python
Charlotte Tilbury英国官网:英国彩妆品牌
2017/05/26 全球购物
TIME时代杂志台湾总代理:台时亚洲
2018/10/22 全球购物
爱心捐款倡议书
2014/04/14 职场文书
大学生入党积极分子自我评价
2014/09/20 职场文书
党校毕业个人总结
2015/02/28 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书