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危险函数(disable_functions)
Feb 23 PHP
基于MySQL分区性能的详细介绍
May 02 PHP
深入Memcache的Session数据的多服务器共享详解
Jun 13 PHP
PHP以指定字段为索引返回数据库所取的数据数组
Jun 30 PHP
如何使用php判断服务器是否是HTTPS连接
Jul 05 PHP
php实现天干地支计算器示例
Mar 14 PHP
php实现图片等比例缩放代码
Jul 23 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
Jan 08 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 PHP
PHP实现二维数组中的查找算法小结
Jun 09 PHP
laravel框架创建授权策略实例分析
Nov 22 PHP
Yii实现微信公众号场景二维码的方法实例
Aug 30 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实现登陆验证码(类似条行码状)
2006/10/09 PHP
php中截取字符串支持utf-8
2007/01/18 PHP
屏蔽机器人从你的网站搜取email地址的php代码
2012/11/14 PHP
php找出指定范围内回文数且平方根也是回文数的方法
2015/03/23 PHP
JavaScript的parseInt 进制问题
2009/05/07 Javascript
jQuery生成asp.net服务器控件的代码
2010/02/04 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
2013/12/11 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
IE中getElementsByName()对有些元素无效的解决方案
2014/09/28 Javascript
详解JavaScript中的属性和特性
2016/12/08 Javascript
移动端点击态处理的三种实现方式
2017/01/12 Javascript
jQuery实现的动态文字变化输出效果示例【附演示与demo源码下载】
2017/03/24 jQuery
jQuery中clone()函数实现表单中增加和减少输入项
2017/05/13 jQuery
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
Vue-Router模式和钩子的用法
2018/02/28 Javascript
详解Vue.js在页面加载时执行某个方法
2018/11/20 Javascript
Vue常用传值方式、父传子、子传父及非父子实例分析
2020/02/24 Javascript
python读取注册表中值的方法
2013/04/08 Python
浅析python 中__name__ = '__main__' 的作用
2014/07/05 Python
Python中关于使用模块的基础知识
2015/05/24 Python
利用Python获取赶集网招聘信息前篇
2016/04/18 Python
Python 数据结构之堆栈实例代码
2017/01/22 Python
利用pyinstaller或virtualenv将python程序打包详解
2017/03/22 Python
遗传算法之Python实现代码
2017/10/10 Python
python实现xlsx文件分析详解
2018/01/02 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
python实现对列表中的元素进行倒序打印
2019/11/23 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
北美领先的牛仔品牌:Buffalo David Bitton
2017/05/22 全球购物
6PM官网:折扣鞋、服装及配饰
2018/08/03 全球购物
英国文具、办公用品和科技商店:Ryman
2018/09/27 全球购物
意大利珠宝店:Luxury Zone
2019/01/05 全球购物
NYX Professional Makeup俄罗斯官网:世界知名的化妆品品牌
2019/12/26 全球购物
Servlet如何得到客户端机器的信息
2014/10/17 面试题
典型事迹材料范文
2014/12/29 职场文书
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server