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缩略图等比例无损压缩,可填充空白区域补充色
Jun 10 PHP
php eval函数用法 PHP中eval()函数小技巧
Oct 31 PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
Oct 20 PHP
PHP 生成N个不重复的随机数
Jan 21 PHP
php选择排序法实现数组排序实例分析
Feb 16 PHP
PHP 验证登陆类分享
Mar 13 PHP
PHP文件生成的图片无法使用CDN缓存的解决方法
Jun 20 PHP
PHP中配置IIS7实现基本身份验证的方法
Sep 24 PHP
thinkphp关于简单的权限判定方法
Apr 03 PHP
PHP常用日期加减计算方法实例小结
Jul 31 PHP
php 后端实现JWT认证方法示例
Sep 04 PHP
Centos7安装swoole扩展操作示例
Mar 26 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正则走开
2008/03/15 PHP
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
2011/05/09 PHP
php地址引用(php地址引用的效率问题)
2012/03/23 PHP
php 批量生成html,txt文件的实现代码
2013/06/26 PHP
PHP经典实用正则表达式小结
2017/05/04 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
PHP利用Mysql锁解决高并发的方法
2018/09/04 PHP
JS宝典学习笔记(下)
2007/01/10 Javascript
JQUERY1.6 使用方法四 检测浏览器
2011/11/23 Javascript
jquery 操作日期、星期、元素的追加的实现代码
2012/02/07 Javascript
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
2013/06/04 Javascript
使用js解决由border属性引起的div宽度问题
2013/11/26 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
JS防止网页被嵌入iframe框架的方法分析
2016/09/13 Javascript
pc加载更多功能和移动端下拉刷新加载数据
2016/11/07 Javascript
详解微信小程序网络请求接口封装实例
2019/05/02 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
2020/05/28 Javascript
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
django反向解析URL和URL命名空间的方法
2018/06/05 Python
python实现多张图片拼接成大图
2019/01/15 Python
在 Pycharm 安装使用black的方法详解
2020/04/02 Python
解决Python Matplotlib绘图数据点位置错乱问题
2020/05/16 Python
详解python logging日志传输
2020/07/01 Python
PurCotton全棉时代官网:100%天然棉花生产的生活护理用品
2016/11/18 全球购物
RUIFIER官网:英国奢侈高级珠宝品牌
2020/06/12 全球购物
AssertionError 跟一下那个类是 “is – a”的关系
2012/02/21 面试题
个人简历自我评价范文
2014/02/04 职场文书
人事专员职责
2014/02/22 职场文书
《生命 生命》教学反思
2014/04/19 职场文书
城管综合整治方案
2014/05/01 职场文书
小学教师暑期培训方案
2014/08/28 职场文书
2015年语文教研组工作总结
2015/05/23 职场文书
党性教育心得体会(共6篇)
2016/01/21 职场文书
oracle重置序列从0开始递增1
2022/02/28 Oracle
python图像处理 PIL Image操作实例
2022/04/09 Python