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 xml文件操作实现代码(二)
Mar 20 PHP
PHP STRING 陷阱原理说明
Jul 24 PHP
PHP使用GIFEncoder类处理gif图片实例
Jul 01 PHP
PHP自带函数给数字或字符串自动补齐位数
Jul 29 PHP
PHP开发框架Laravel数据库操作方法总结
Sep 03 PHP
微信获取用户地理位置信息的原理与步骤
Nov 12 PHP
再谈PHP中单双引号的区别详解
Jun 12 PHP
PHP 接入支付宝即时到账功能
Sep 18 PHP
php传值方式和ajax的验证功能
Mar 27 PHP
laravel 中如何使用ajax和vue总结
Aug 16 PHP
PHP实时统计中文字数和区别
Feb 28 PHP
Yii框架ACF(accessController)简单权限控制操作示例
Apr 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运行时动态创建函数的方法
2015/03/16 PHP
php 使用fopen函数创建、打开文件详解及实例代码
2016/09/24 PHP
PHP截取发动短信内容的方法
2017/07/04 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
PHP代码加密的方法总结
2020/03/13 PHP
arguments对象
2006/11/20 Javascript
十分钟打造AutoComplete自动完成效果代码
2009/12/26 Javascript
JavaScript小技巧 2.5 则
2010/09/12 Javascript
jQuery实现页面滚动时层智能浮动定位实例探讨
2013/03/29 Javascript
js中split和replace的用法实例
2015/02/28 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
jQuery解析XML 详解及方法总结
2016/09/28 Javascript
js仿微博动态栏功能
2017/02/22 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
2017/04/23 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
vue-cli中vue本地实现跨域调试接口
2019/01/16 Javascript
vue封装可复用组件confirm,并绑定在vue原型上的示例
2019/10/31 Javascript
如何运行Python程序的方法
2013/04/21 Python
Python中的defaultdict模块和namedtuple模块的简单入门指南
2015/04/01 Python
win7上python2.7连接mysql数据库的方法
2017/01/14 Python
python实现飞机大战微信小游戏
2020/03/21 Python
pygame游戏之旅 调用按钮实现游戏开始功能
2018/11/21 Python
Python秒算24点实现及原理详解
2019/07/29 Python
新手常见Python错误及异常解决处理方案
2020/06/18 Python
pytorch 常用函数 max ,eq说明
2020/06/28 Python
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
印度最好的在线药品订购网站:PharmEasy
2018/11/30 全球购物
阿迪达斯中国官网:Adidas中国
2020/12/14 全球购物
新农村建设典型材料
2014/05/31 职场文书
村长党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014年档案室工作总结
2014/12/01 职场文书
高中开学感言
2015/08/01 职场文书
《自然之道》读后感3篇
2019/12/17 职场文书
解决Git推送错误non-fast-forward的方法
2022/06/25 Servers