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定时执行计划任务的多种方法小结
Dec 19 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
May 07 PHP
浅谈PDO的rowCount函数
Jun 18 PHP
CodeIgniter 完美解决URL含有中文字符串
May 13 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
May 18 PHP
基于PHP生成简单的验证码
Jun 01 PHP
php 的反射详解及示例代码
Aug 25 PHP
PHP针对多用户实现更换头像功能
Sep 04 PHP
Yii框架批量插入数据扩展类的简单实现方法
May 23 PHP
PHP使用curl_multi实现并发请求的方法示例
Apr 29 PHP
详解Laravel5.6 Passport实现Api接口认证
Jul 27 PHP
PHP查找一列有序数组是否包含某值的方法
Feb 07 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开发中四种查询返回结果分析
2011/01/02 PHP
解析file_get_contents模仿浏览器头(user_agent)获取数据
2013/06/27 PHP
Yii2实现上下联动下拉框功能的方法
2016/08/10 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
CI框架简单分页类用法示例
2020/06/06 PHP
jquery cookie的用法总结
2013/11/18 Javascript
javascript基于HTML5 canvas制作画箭头组件
2014/06/25 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
2015/11/05 Javascript
JS+CSS实现DIV层的展开、收缩效果
2016/01/28 Javascript
JS前端加密算法示例
2016/12/22 Javascript
canvas快速绘制圆形、三角形、矩形、多边形方法介绍
2016/12/29 Javascript
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
基于jQuery解决ios10以上版本缩放问题
2017/11/03 jQuery
vue升级之路之vue-router的使用教程
2018/08/14 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
解决Vue-Router升级导致的Uncaught (in promise)问题
2020/08/07 Javascript
jquery实现鼠标悬浮弹出气泡提示框
2020/12/23 jQuery
[58:58]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第二场
2018/04/05 DOTA
[39:18]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第二场 12.17
2020/12/19 DOTA
详解Python命令行解析工具Argparse
2016/04/20 Python
django在接受post请求时显示403forbidden实例解析
2018/01/25 Python
对python中的six.moves模块的下载函数urlretrieve详解
2018/12/19 Python
python多进程间通信代码实例
2019/09/30 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
Vans(范斯)德国官网:美国南加州的原创极限运动潮牌
2017/05/02 全球购物
Delphi软件工程师试题
2013/01/29 面试题
护理专科毕业推荐信
2013/11/10 职场文书
办公室秘书岗位职责范本
2014/02/11 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
交通事故协议书范本
2014/11/18 职场文书
个人优缺点总结
2015/02/28 职场文书
春风化雨观后感
2015/06/11 职场文书
消防演习感想
2015/08/10 职场文书
纯html+css实现奥运五环的示例代码
2021/08/02 HTML / CSS
python代码实现扫码关注公众号登录的实战
2021/11/01 Python