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中截取字符串支持utf-8
Jan 18 PHP
PHP base64+gzinflate压缩编码和解码代码
Oct 03 PHP
PHP HTML代码串 截取实现代码
Jun 29 PHP
PHP file_get_contents 函数超时的几种解决方法
Jul 30 PHP
PHP重定向的3种方式
Mar 07 PHP
ThinkPHP中使用ajax接收json数据的方法
Dec 18 PHP
Symfony的安装和配置方法
Mar 17 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
Mar 17 PHP
PHP中file_put_contents追加和换行的实现方法
Apr 01 PHP
php处理抢购类功能的高并发请求
Feb 08 PHP
PHPTree――php快速生成无限级分类
Mar 30 PHP
yii框架数据库关联查询操作示例
Oct 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中Http协议post请求参数
2015/11/02 PHP
如何学习Javascript入门指导
2013/11/01 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
2014/08/15 Javascript
一个js过滤空格的小函数
2014/10/10 Javascript
JS实现的Select三级下拉菜单代码
2015/08/20 Javascript
Three.js中网格对象MESH的属性与方法详解
2017/09/27 Javascript
angular2 ng2-file-upload上传示例代码
2018/08/23 Javascript
vue实现分页组件
2020/06/16 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
2020/06/26 Javascript
多个Vue项目部署到服务器的步骤记录
2020/10/22 Javascript
[34:56]Ti4冒泡赛LGD vs Liquid 1
2014/07/14 DOTA
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
[33:28]完美世界DOTA2联赛PWL S3 PXG vs GXR 第三场 12.19
2020/12/24 DOTA
python避免死锁方法实例分析
2015/06/04 Python
python中ASCII码字符与int之间的转换方法
2018/07/09 Python
老生常谈python中的重载
2018/11/11 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
使用python无账号无限制获取企查查信息的实例代码
2020/04/17 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
AVON雅芳官网:世界上最大的美容化妆品公司之一
2016/11/02 全球购物
WoolOvers澳洲官方网站:英国针织服装公司
2018/05/13 全球购物
ONLY瑞典官网:世界知名服装品牌
2018/06/19 全球购物
DBA的职责都有哪些
2012/05/16 面试题
英文简历中的自荐信范文
2013/12/14 职场文书
会计辞职信范文
2014/01/15 职场文书
2014年计算机专业个人自我评价
2014/01/19 职场文书
服装电子商务创业计划书
2014/01/30 职场文书
生日礼品店创业计划书范文
2014/03/21 职场文书
教师党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
房产公证书格式
2015/01/26 职场文书
长城英文导游词
2015/01/30 职场文书
2015年节能减排工作总结
2015/05/14 职场文书
幼儿园庆元旦主持词
2015/07/06 职场文书
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
2021/03/29 Python
如何在centos上使用yum安装rabbitmq-server
2021/03/31 Servers
浅谈什么是SpringBoot异常处理自动配置的原理
2021/06/21 Java/Android