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
PHP4在Windows2000下的安装
Oct 09 PHP
通俗易懂的php防注入代码
Apr 07 PHP
php ftp文件上传函数(基础版)
Jun 03 PHP
php5 apache 2.2 webservice 创建与配置(java)
Jan 27 PHP
php获取文件内容最后一行示例
Jan 09 PHP
PHP 生成N个不重复的随机数
Jan 21 PHP
PHP传参之传值与传址的区别
Apr 24 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
Dec 17 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
Oct 08 PHP
PHP 的Opcache加速的使用方法
Dec 29 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
Jun 22 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 URL编码解码函数代码
2009/03/10 PHP
基于PHP中的常用函数回顾
2013/07/11 PHP
一个漂亮的php验证码类(分享)
2013/08/06 PHP
PHP中使用CURL模拟登录并获取数据实例
2014/07/01 PHP
JS 面向对象之神奇的prototype
2011/02/26 Javascript
在Windows上安装Node.js模块的方法
2011/09/25 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
SeaJS入门教程系列之完整示例(三)
2014/03/03 Javascript
js实现网页随机切换背景图片的方法
2014/11/01 Javascript
JavaScript的类型、值和变量小结
2015/07/09 Javascript
Javascript函数式编程简单介绍
2015/10/11 Javascript
基于JavaScript的操作系统你听说过吗?
2016/01/28 Javascript
Javascript实现代码折叠功能
2016/08/25 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
angularJS模态框$modal实例代码
2017/05/27 Javascript
js实现登录与注册界面
2017/11/01 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
2018/04/08 Javascript
对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解
2018/08/27 Javascript
python读取TXT到数组及列表去重后按原来顺序排序的方法
2015/06/26 Python
python机器学习库常用汇总
2017/11/15 Python
pycharm debug功能实现跳到循环末尾的方法
2018/11/29 Python
Django 实现图片上传和显示过程详解
2019/07/18 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
python爬取代理ip的示例
2020/12/18 Python
全网最详细的PyCharm+Anaconda的安装过程图解
2021/01/25 Python
AmazeUI中各种的导航式菜单与解决方法
2020/08/19 HTML / CSS
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
Java面试题:请问一下代码输出是什么
2015/05/27 面试题
销售人员个人求职信
2013/09/26 职场文书
出纳员岗位责任制
2014/02/11 职场文书
货车司机岗位职责
2014/03/18 职场文书
班级课外活动总结
2014/07/09 职场文书
小区门卫的岗位职责
2014/09/26 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
用Python将库打包发布到pypi
2021/04/13 Python
使用CSS实现小三角边框原理解析
2021/11/07 HTML / CSS