当前位置:首页 > PHP教程 > php应用 > 列表

PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-25 14:40:06 浏览: 评论:0 

这篇文章主要介绍了PHP7实现和CryptoJS的AES加密方式互通操作,结合实例形式分析了PHP AES-128-ECB加密算法相关使用技巧,需要的朋友可以参考下。

本文实例讲述了PHP7实现和CryptoJS的AES加密方式互通,分享给大家供大家参考,具体如下:

PHP类:

  1. class AES 
  2.   /** 
  3.    * 
  4.    * @param string $string 需要加密的字符串 
  5.    * @param string $key 密钥 
  6.    * @return string 
  7.    */ 
  8.   public static function encrypt($string$key
  9.   { 
  10.     // openssl_encrypt 加密不同Mcrypt,对秘钥长度要求,超出16加密结果不变 
  11.     $data = openssl_encrypt($string'AES-128-ECB'$key, OPENSSL_RAW_DATA); 
  12.     return base64_encode($data); 
  13.   } 
  14.   /** 
  15.    * @param string $string 需要解密的字符串 
  16.    * @param string $key 密钥 
  17.    * @return string 
  18.    */ 
  19.   public static function decrypt($string$key
  20.   { 
  21.     return openssl_decrypt(base64_decode($string), 'AES-128-ECB'$key, OPENSSL_RAW_DATA); 
  22.   } 
  23.   /** 
  24.    * 获取秘钥 
  25.    * @return string 
  26.    */ 
  27.   public static function getSecretKey() 
  28.   { 
  29.     $str='xxx';//生成16位的字符窜 
  30.     return $str
  31.   } 

JS的写法:

  1. <script type="text/javascript" src="./bower_components/crypto-js/crypto-js.js"></script> 
  2. <script type="text/javascript"
  3.   AesKey = 'xxxxx';//加密时用的key,跟php一样 
  4.   message='xxxxxxx';//加密后的字符窜 
  5.   var ECBOptions = { 
  6.     mode: CryptoJS.mode.ECB, 
  7.     padding: CryptoJS.pad.Pkcs7 
  8.   }; 
  9.   var key = CryptoJS.enc.Utf8.parse(AesKey); 
  10.   var bytes = CryptoJS.AES.decrypt(message, key,ECBOptions); 
  11.   var originalText = bytes.toString(CryptoJS.enc.Utf8); 
  12.   console.log(originalText) 
  13. </script>

Tags: CryptoJS AES AES-128-ECB

分享到: