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 相关文章推荐
浅谈Windows下 PHP4.0与oracle 8的连接设置
Oct 09 PHP
用PHP制作静态网站的模板框架(四)
Oct 09 PHP
怎么样可以把 phpinfo()屏蔽掉?
Nov 24 PHP
30 个很棒的PHP开源CMS内容管理系统小结
Oct 14 PHP
请离开include_once和require_once
Jul 18 PHP
PHP模拟asp.net的StringBuilder类实现方法
Aug 08 PHP
PHP实现的构造sql语句类实例
Feb 03 PHP
PHP自定义错误用法示例
Sep 28 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 PHP
PHP设计模式之适配器模式定义与用法详解
Apr 03 PHP
作为PHP程序员你要知道的另外一种日志
Jul 30 PHP
PHP程序员必须知道的两种日志实例分析
May 14 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 压缩文件夹的类代码
2009/11/05 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
JavaScript使用cookie
2007/02/02 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
jquery实现保存已选用户
2014/07/21 Javascript
jQuery简单实现两级下拉菜单效果代码
2015/09/15 Javascript
JavaScript中的对象继承关系
2016/08/01 Javascript
JS中闭包的经典用法小结(2则示例)
2016/12/28 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
2017/09/18 Javascript
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
javascript设计模式之迭代器模式
2020/01/30 Javascript
vue npm install 安装某个指定的版本操作
2020/08/11 Javascript
Element-UI 使用el-row 分栏布局的教程
2020/10/26 Javascript
分享一下如何编写高效且优雅的 Python 代码
2017/09/07 Python
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
Python3 shutil(高级文件操作模块)实例用法总结
2020/02/19 Python
Django模板标签{% for %}循环,获取制定条数据实例
2020/05/14 Python
python中有帮助函数吗
2020/06/19 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
爱游人:Travelliker
2017/09/05 全球购物
大韩航空官方网站:Korean Air
2017/10/25 全球购物
应届大学生自荐信
2013/12/05 职场文书
十佳班主任事迹材料
2014/01/18 职场文书
医学专业职业生涯规划范文
2014/02/05 职场文书
酒店秘书求职信范文
2014/02/17 职场文书
团队精神口号
2014/06/06 职场文书
客运企业隐患排查工作方案
2014/06/06 职场文书
工地宣传标语
2014/06/18 职场文书
单位在职证明书
2014/09/11 职场文书
教师岗位职责范本
2015/04/02 职场文书
2015年银行个人工作总结
2015/05/14 职场文书
关于环保的广播稿
2015/12/17 职场文书
sql查询结果列拼接成逗号分隔的字符串方法
2021/05/25 SQL Server
CKAD认证中部署k8s并配置Calico插件
2022/03/31 Servers