久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

前端Crypto.jsAES加密,PHP openssl_decrypt()解密進行數據安全傳輸

前幾日做微信小程序開發,對于前后端分離的項目,如果涉及到的敏感數據比較多,我們一般采用前后端進行接口加密處理,采用的是 AES + BASE64 算法加密,前端使用純JavaScript的加密算法類庫crypto-js進行數據加密,后端使用PHP openssl_decrypt()解密進行數據安全傳輸~

高級加密標準(AES,Advanced Encryption Standard)為最常見的對稱加密算法(微信小程序加密傳輸就是用這個加密算法的)。對稱加密算法也就是加密和解密用相同的密鑰,具體的加密流程如下圖:

前端Crypto.jsAES加密,PHP openssl_decrypt()解密進行數據安全傳輸

crypto-js(GitHub)是谷歌開發的一個純JavaScript的加密算法類庫,可以非常方便的在前端進行其所支持的加解密操作。目前crypto-js已支持的算法有:MD5,SHA-1,SHA-256,AES,Rabbit,MARC4,HMAC,HMAC-MD5,HMAC-SHA1,HMAC-SHA256,PBKDF2。常用的加密方式有MD5和AES。

crypto-js 安裝方式

  npm install crypto-js

安裝成功以后直接找到crypto-js.js文件,并將其引入 const CryptoJS = require('./crypto-js.js');

uniapp app開發 前后端分離 api接口安全策略

1. 請求服務端獲取隨機token, create_time并存到文件緩存中

2. 前端拿到token,create_time使用CryptoJS加密生成簽名,放到請求頭中

3. 服務端工程師解密,完成sign時效性校驗 通過后獲取接口數據

    const CryptoJS = require('./crypto-js.js'); //引用AES源碼js     const BASE_URL = "http://love.ouyangke.net/"     const key = CryptoJS.enc.Utf8.parse("chloefuckityoall"); //十六位十六進制數作為密鑰     const iv = CryptoJS.enc.Utf8.parse('9311019310287172'); //十六位十六進制數作為非空的初始化向量       export const getAccessToken = ()=> {  	uni.request({ 		url: BASE_URL + 'getAccessToken', 		method: 'GET', 		success:   (res) => { 			// console.log(res); 			const { 				data 			} = res  			 			if (data.code == 0) { 				return 			} 			// console.log(data.token); 			var encrypted = CryptoJS.AES.encrypt(JSON.stringify({ 				token: data.token, 				create_time: data.create_time 			}), key, { 				mode: CryptoJS.mode.CBC,  				padding: CryptoJS.pad.Pkcs7, 				iv: iv 			}).toString() 			// console.log('簽名完成',encrypted ); 			// 記錄在本地 			  uni.setStorage({ 				key:"sign", 				data:encrypted 			}); 	  			  			   			 		}, 		fail: (err) => { 			console.log(JSON.stringify(err)); 		} 	 })     }

接著將封裝的getAccessToken函數注冊到vue原型上

前端Crypto.jsAES加密,PHP openssl_decrypt()解密進行數據安全傳輸

然后在需要使用的方法中直接調用該方法就可以了,如圖:

前端Crypto.jsAES加密,PHP openssl_decrypt()解密進行數據安全傳輸

后端tp6創建中間控制器Common.php,讓所有除了生成token的控制器集成這個中間控制器,實時檢測簽名的有效性

common.php代碼如下:

 <?php     namespace applovecontroller;     use appBaseController;     use thinkfacadeCache;     use libApiAuth;     class Common extends BaseController     {                      const ILLEGAL_SIGN = 'sign is illegal';         public function initialize()         {                             $this->checkRequestAuth();             }              //驗證方法          /**     	 * 檢驗sign的真實性      	 * @return bool  校驗通過返回true,失敗返回false     	 *           * 檢查app每一次提交的數據是否合法          */         public function checkRequestAuth()         {              //獲取header頭的某個信息sign             $sign = request()->header('sign');                          $res = ApiAuth::checkSign($sign);                           if(!$res)             {                 echo json_encode(['status'=>0,'msg'=>self::ILLEGAL_SIGN]);                 exit;             }                       }     	      	                       }

ApiAuth.php

<?php namespace lib; use thinkfacadeCache; //校驗類   class ApiAuth {     // 生成簽名     public static function setSign(Array $data=[])     {         ksort($data);         $sign_str = http_build_query($data);         return (new Aes())->encrypt($sign_str);     }               // 校驗sign          public static function checkSign($sign)     {            //   解密sign 獲取到的明文信息          $str = (new Aes())->decrypt($sign);                   if(!$str)         {             return false;         }                  $arr = json_decode($str,true);              $res =  Cache::get($arr['token']);                     if(!is_array($arr) || count($arr)!=2 || !$res)         {                           return false;         }                  if($res)         {             if($arr['create_time'] != $res)             {                                  return false;             }else{                 //校驗sign有效期                  $cliff = time()-$arr['create_time'];                                  if ( $cliff > config('app.aes.api_sign_expire_time')) {                                        return false;                   }                                  //驗證通過,刪除token                 Cache::delete($arr['token']);                 return true;             }         }                 } }

Aes.php:

<?php namespace lib; class Aes{     private $key = null;     private $iv = null;          public function __construct(){         $this->iv = config('app.aes.aesiv');//這里是從配置文件中取和前端一致的iv與key         $this->key = config('app.aes.aeskey');     }               public function encrypt($plainText)     {         $data = openssl_encrypt($plainText, 'AES-128-CBC', $this->key, OPENSSL_RAW_DATA, $this->iv);         $data = base64_encode($data);         return $data;     }          public function decrypt($cipher)     {         $plainText = openssl_decrypt(base64_decode($cipher),'AES-128-CBC',$this->key,OPENSSL_RAW_DATA,$this->iv);                        return $plainText;     }       }

將配置信息部署配置在這里

前端Crypto.jsAES加密,PHP openssl_decrypt()解密進行數據安全傳輸

【推薦學習:javascript高級教程】

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
欧美成人基地 | 亚洲3区在线| 亚洲美洲欧洲综合国产一区| 日韩精品亚洲aⅴ在线影院| 日韩av一区二| 国产精品亚洲片在线播放| 久久av导航| 久久不卡日韩美女| 国产一区二区三区四区五区传媒| 日韩久久精品| 国产精品日韩| 日本精品另类| 精品一区电影| 国产一区二区三区自拍| 伊人久久大香线蕉av不卡| 99re国产精品| 欧美亚洲二区| 91精品啪在线观看国产18| 午夜欧美精品久久久久久久| 亚洲欧洲av| 精品久久福利| 日韩一级不卡| 日本中文字幕不卡| 麻豆免费精品视频| 欧美成人国产| 国产日韩欧美一区二区三区在线观看 | 色爱av综合网| 国产盗摄——sm在线视频| 亚洲免费在线| 久久亚洲人体| 99成人在线| 日韩精品电影一区亚洲| 视频二区不卡| 日本在线不卡视频一二三区| 欧美交a欧美精品喷水| 麻豆视频在线观看免费网站黄| 午夜在线播放视频欧美| 美女性感视频久久| 先锋影音久久久| 久久精品国产999大香线蕉| 极品裸体白嫩激情啪啪国产精品| 911精品国产| 欧美午夜精彩| 久久久91麻豆精品国产一区| 狠狠干综合网| 精品视频97| 日韩中文字幕区一区有砖一区 | 女主播福利一区| 国产精品香蕉| 国产精品美女久久久浪潮软件| 麻豆视频一区| 亚洲视频二区| 91精品国产自产在线观看永久∴| 国产精品欧美三级在线观看| 亚洲女同中文字幕| 成人午夜在线| 日本在线成人| 欧美在线影院| 福利一区和二区| 色综合视频一区二区三区日韩| 日韩精品一区二区三区免费观影| 国产精品一站二站| 国产a久久精品一区二区三区| 婷婷六月综合| 亚洲精品**中文毛片| 国产欧美在线| 美国三级日本三级久久99| 91精品国产福利在线观看麻豆| 久久免费影院| 777久久精品| 中文字幕一区二区三区日韩精品 | 日本免费新一区视频| 激情久久中文字幕| 国产高清不卡| 牛牛精品成人免费视频| 亚洲精品伊人| 视频一区二区欧美| 国产亚洲精品久久久久婷婷瑜伽| 日本在线精品| 首页国产精品| 精品资源在线| 国内精品麻豆美女在线播放视频| 国产欧美自拍| 亚洲开心激情| 免费人成黄页网站在线一区二区| 女同性一区二区三区人了人一| 久久精品青草| 黄色不卡一区| 亚洲欧美日韩国产| 亚洲伊人影院| 五月国产精品| 国产探花一区二区| 国产精品2区| 久久99久久久精品欧美| 国产精品片aa在线观看| 国产精品啊啊啊| 国产一区二区亚洲| 岛国av免费在线观看| 电影91久久久| 日韩一区电影| 国产99久久| 99国产精品视频免费观看一公开| 亚洲成人精选| 视频一区在线播放| 日本成人在线一区| 欧美影院精品| 美女精品久久| 中文字幕在线高清| 久久人人精品| 玖玖精品视频| 日韩精品欧美成人高清一区二区| 911精品国产| 久久99国产精品视频| 国产精品夜夜夜| 91亚洲成人| 99精品99| 国产精品一区二区三区av| 国产一区二区三区免费在线| 久久精品青草| 中文字幕av亚洲精品一部二部| 欧美在线看片| 福利一区二区三区视频在线观看| 999国产精品| 爽好多水快深点欧美视频| 日韩精品免费视频一区二区三区| 国产精品久久久久久久久久妞妞| 成人日韩av| 91久久黄色| 日韩国产91| 亚洲综合在线电影| 亚洲一区二区免费在线观看| 国产精品尤物| 国产专区一区| 欧美视频二区| 亚洲成人二区| 欧美一级二区| 色老板在线视频一区二区| 亚洲综合激情在线| 久久精品人人| 亚洲一区二区三区四区五区午夜 | 久久久天天操| 午夜久久av | 久久香蕉精品| 麻豆传媒一区二区三区| 激情婷婷久久| 国产一级成人av| 亚洲一本视频| 久久精品97| 宅男在线一区| 国产精品免费大片| 五月天久久777| 免费精品一区| 亚洲免费网址| 精品国产欧美日韩| 美美哒免费高清在线观看视频一区二区| 麻豆成人av在线| 免费观看久久久4p| 天堂√中文最新版在线| 日精品一区二区三区| 少妇精品导航| 国产精品一区二区三区av| 黄色av一区| 成人在线免费观看网站| 亚洲视频电影在线| 欧美日中文字幕| 久久久精品国产**网站| 丝袜美腿成人在线| 日韩综合精品| 国产精品日本一区二区三区在线| 99国产一区| 日韩精品免费一区二区三区| 国产精品一区二区精品视频观看| 亚洲一卡久久| 99国产精品免费视频观看| 免费一级欧美片在线观看网站| 亚洲精品裸体| 久久国产福利| 黄色精品网站| 亚洲精品护士| 好吊视频一区二区三区四区| 日韩久久精品| 激情久久一区二区| 97成人在线| 久久国产精品毛片| 欧美成人日韩| 精品丝袜在线| 欧美国产一级| 精品伊人久久久| 国产欧美一区二区三区精品观看| 久热精品在线| 欧美日韩四区| 伊人影院久久| 狠狠干综合网| 中文日韩在线| 午夜亚洲福利在线老司机| 国产偷自视频区视频一区二区| 国产99亚洲| 99久久99久久精品国产片果冰| 国产精品精品| 国产传媒av在线|