PHP7.*通过openssl_encrypt实现AES加密实现php/js互通加密/解密

前端之家收集整理的这篇文章主要介绍了PHP7.*通过openssl_encrypt实现AES加密实现php/js互通加密/解密前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

PHP7.1以后mcrypt_encrypt将会被废弃,所以我们使用openssl_decryptopenssl_encrypt的组合方式实现AES加密实现PHP/js互通加密/解密。

一、PHP加密解密

  1. <?PHP 
  2. $data = 'ABCDEFGH';
  3. $key = "1234567898882222";
  4. $iv = '8NONwyJtHesysWpM';// 加密
  5. $encode = base64_encode(openssl_encrypt($data,"AES-128-CBC",$key,true,$iv));// 解密
  6. $decode = openssl_decrypt(base64_decode($encode),"AES-128-CBC",$key,true,$iv);
  7. $lists = array("encode"=>$encode,"decode"=>$decode,"iv"=>$iv,"key"=>$key,"data"=>$data);
  8. var_dump($lists);?>

二、js端的加密解密

js端使用CryptoJS封装的库。

  1. <!DOCTYPE html>
  2. <html>
  3.   <head>
  4.     <title>AES</title></head>
  5.   <script type="text/javascript" src="http://react.file.alimmdn.com/aes.js"></script>
  6.   
  7.   <body>
  8.     <script>var IV = '8NONwyJtHesysWpM';
  9.       var KEY = '1234567898882222';
  10.       var data = 'ABCDEFGH';
  11.  
  12.       // 加密
  13.       function encrypt(str) {
  14.         var key = CryptoJS.enc.Utf8.parse(KEY);
  15.         var iv = CryptoJS.enc.Utf8.parse(IV);
  16.         var encrypted = CryptoJS.AES.encrypt(str, key, {
  17.           iv: iv,
  18.           mode: CryptoJS.mode.CBC,
  19.           padding: CryptoJS.pad.Pkcs7
  20.         });
  21.         return encrypted.toString();
  22.       }
  23.  
  24.       // 解密
  25.       function decrypt(str) {
  26.         var key = CryptoJS.enc.Utf8.parse(KEY);
  27.         var iv = CryptoJS.enc.Utf8.parse(IV);
  28.         var decrypted = CryptoJS.AES.decrypt(str, key, {
  29.           iv: iv,
  30.           padding: CryptoJS.pad.Pkcs7
  31.         });
  32.         return decrypted.toString(CryptoJS.enc.Utf8);
  33.       }
  34.  
  35.       var encode = encrypt(data);
  36.       var decode = decrypt(encode);
  37.       console.log(JSON.stringify({
  38.         "encode": encode,
  39.         "decode": decode,
  40.         "iv": IV,
  41.         "key": KEY,
  42.         "data": data
  43.       }));</script>
  44.   </body>
  45.  
  46. </html>

猜你在找的PHP相关文章