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 相关文章推荐
在PHP的图形函数中显示汉字
Oct 09 PHP
通俗易懂的php防注入代码
Apr 07 PHP
php中实现记住密码自动登录的代码
Mar 02 PHP
关于php curl获取301或302转向的网址问题的解决方法
Jun 02 PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
Dec 19 PHP
控制PHP的输出:缓存并压缩动态页面
Jun 11 PHP
php 如何获取数组第一个值
Aug 06 PHP
js和php邮箱地址验证的实现方法
Jan 09 PHP
Smarty简单生成表单元素的方法示例
May 23 PHP
自制PHP框架之模型与数据库
May 07 PHP
完美解决Thinkphp3.2中插入相同数据的问题
Aug 01 PHP
浅析PHP数据导出知识点
Feb 17 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
教你如何把一篇文章按要求分段
2006/10/09 PHP
发布一个用PHP fsockopen写的HTTP下载的类
2007/02/22 PHP
PHP程序级守护进程的实现与优化的使用概述
2013/05/02 PHP
javascript 四则运算精度修正函数代码
2010/05/31 Javascript
JavaScript中几种常见排序算法小结
2011/02/22 Javascript
你的 mixin 真的兼容 ECMAScript 5 吗?
2013/04/11 Javascript
js中cookie的添加、取值、删除示例代码
2013/10/21 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
2014/09/02 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
2015/11/27 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
jQuery自动完成插件completer附源码下载
2016/01/04 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
2016/02/25 Javascript
js实现千分符和保留几位小数的简单实例
2016/08/01 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
详解ES6中的 Set Map 数据结构学习总结
2018/11/06 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
2019/06/21 Javascript
[00:32]2018DOTA2亚洲邀请赛iG出场
2018/04/03 DOTA
python中xrange用法分析
2015/04/15 Python
Python基于pygame实现的font游戏字体(附源码)
2015/11/11 Python
Python网络编程详解
2017/10/31 Python
使用Python写一个小游戏
2018/04/02 Python
python如果快速判断数字奇数偶数
2019/11/13 Python
解决pycharm 安装numpy失败的问题
2019/12/05 Python
python 解决cv2绘制中文乱码问题
2019/12/23 Python
面向新手解析python Beautiful Soup基本用法
2020/07/11 Python
canvas需要在标签里直接定义宽高
2014/12/17 HTML / CSS
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
S’well Bottle保温杯官网:绝缘不锈钢水瓶
2018/05/09 全球购物
日语专业个人求职信范文
2014/02/02 职场文书
房屋出售授权委托书
2014/10/12 职场文书
小学班主任评语
2014/12/29 职场文书
七年级地理教学计划
2015/01/22 职场文书
护士长2015年终工作总结
2015/04/24 职场文书
nginx常用命令放入shell脚本详解
2021/03/31 Servers
教你用python实现一个无界面的小型图书管理系统
2021/05/21 Python
Nginx配置https的实现
2021/11/27 Servers