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 相关文章推荐
简单示例AJAX结合PHP代码实现登录效果代码
Jul 25 PHP
PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
Jul 23 PHP
destoon实现VIP排名一直在前面排序的方法
Aug 21 PHP
php判断类是否存在函数class_exists用法分析
Nov 14 PHP
php简单防盗链实现方法
Jul 29 PHP
PHP直接修改表内容DataGrid功能实现代码
Sep 24 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 PHP
PHP基于GD2函数库实现验证码功能示例
Jan 27 PHP
php回调函数处理数组操作示例
Apr 13 PHP
PHP开发API接口签名生成及验证操作示例
May 27 PHP
php中try catch捕获异常实例详解
Aug 06 PHP
PHP策略模式写法
Apr 01 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
浅谈电磁辐射对健康的影响
2021/03/01 无线电
php分页示例代码
2007/03/19 PHP
PHP连接MySQL查询结果中文显示乱码解决方法
2013/10/25 PHP
yii框架搜索分页modle写法
2016/12/19 PHP
js 深拷贝函数
2008/12/04 Javascript
javascript GUID生成器实现代码
2009/10/31 Javascript
分享十五个最佳jQuery 幻灯插件和教程
2010/03/27 Javascript
浅谈Javascript事件处理程序的几种方式
2012/06/27 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
2015/04/24 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
基于jQuery实现美观且实用的倒计时实例代码
2015/12/30 Javascript
实例讲解JavaScript中instanceof运算符的用法
2016/06/08 Javascript
基于bootstrap的文件上传控件bootstrap fileinput
2016/12/23 Javascript
原生js实现商品放大镜效果
2017/01/12 Javascript
JS实现数组按升序及降序排列的方法
2017/04/26 Javascript
vue 2.0 购物车小球抛物线的示例代码
2018/02/01 Javascript
JavaScript实现图片懒加载的方法分析
2018/07/05 Javascript
详解微信小程序获取当前时间及日期的方法
2019/04/28 Javascript
Vue Render函数创建DOM节点代码实例
2020/07/08 Javascript
[38:44]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第二局
2016/02/25 DOTA
flask中使用SQLAlchemy进行辅助开发的代码
2013/02/10 Python
python批量提取word内信息
2015/08/09 Python
详解在Python程序中自定义异常的方法
2015/10/16 Python
利用aardio给python编写图形界面
2017/08/21 Python
详解Python如何生成词云的方法
2018/06/01 Python
Flask框架单例模式实现方法详解
2019/07/31 Python
用Python写一个自动木马程序
2019/09/17 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
技术经理的自我评价范文
2013/12/03 职场文书
新护士岗前培训制度
2014/02/02 职场文书
公司建议书怎么写
2014/05/15 职场文书
一般纳税人申请报告
2015/05/18 职场文书
Java并发编程必备之Future机制
2021/06/30 Java/Android
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS