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
利用PHP动态生成VRML网页
Oct 09 PHP
php 什么是PEAR?
Mar 19 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
Jun 28 PHP
file_get_contents(&quot;php://input&quot;, &quot;r&quot;)实例介绍
Jul 01 PHP
PHP中$_SERVER使用说明
Jul 05 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
Nov 05 PHP
PHP二维数组去重实例分析
Nov 18 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
Jun 15 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
Jul 31 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
Mar 25 PHP
php中的buffer缓冲区用法分析
May 31 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
PHPExcel在linux环境下导出报500错误的解决方法
2017/01/26 PHP
PHP大文件分割分片上传实现代码
2020/12/09 PHP
解决 firefox 不支持 document.all的方法
2007/03/12 Javascript
javascript日期转换 时间戳转日期格式
2011/11/05 Javascript
jQuery+jsp下拉框联动获取本地数据的方法(附源码)
2015/12/03 Javascript
微信小程序之小豆瓣图书实例
2016/11/30 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
js时间戳与日期格式之间转换详解
2017/12/11 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
基于Axios 常用的请求方法别名(详解)
2018/03/13 Javascript
微信小程序 textarea 层级过高问题简单解决方案
2019/10/14 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
[02:42]DOTA2英雄基础教程 杰奇洛
2013/12/23 DOTA
[48:28]完美世界DOTA2联赛循环赛FTD vs Magma第二场 10月30日
2020/10/31 DOTA
Python使用设计模式中的责任链模式与迭代器模式的示例
2016/03/02 Python
Python算法应用实战之栈详解
2017/02/04 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
2018/07/06 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
2018/12/31 Python
详解用python计算阶乘的几种方法
2019/08/14 Python
Python实现直播推流效果
2019/11/26 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
PyCharm使用Docker镜像搭建Python开发环境
2019/12/26 Python
python计算波峰波谷值的方法(极值点)
2020/02/18 Python
python属于解释语言吗
2020/06/11 Python
Python join()函数原理及使用方法
2020/11/14 Python
美国知名的时尚购物网站:Anthropologie
2016/12/22 全球购物
模具设计与制造专业应届生求职信
2013/10/18 职场文书
大学生志愿者感言
2014/01/15 职场文书
会计系毕业生求职信
2014/05/28 职场文书
奥林匹克的口号
2014/06/13 职场文书
如何写早恋检讨书
2014/09/10 职场文书
大学生职业生涯规划大赛作品(精品)
2014/09/17 职场文书
银行开户授权委托书格式
2014/10/10 职场文书
企业计划生育责任书
2015/05/09 职场文书
原告离婚代理词
2015/05/23 职场文书
SpringBoot整合MongoDB的实现步骤
2021/06/23 MongoDB