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

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

分享到: