激情五月婷婷综合网_奇米精品一区二区三区四区_91在线码无精品_国产精品久久久久一区二区三区_日韩一区二区在线看_99国产欧美另类久久久精品_日韩电影免费一区_亚洲欧美在线另类_9色porny自拍视频一区二区_久久一区二区三区四区_日本在线不卡视频_欧美日韩三级一区二区_亚洲欧美日韩国产综合在线_国产精品影视网_欧美中文字幕一区_制服.丝袜.亚洲.中文.综合

0712-2888027 189-8648-0214
微信公眾號

孝感風信網絡科技有限公司微信公眾號

當前位置:主頁 > 技術支持 > PHP > 前端Vue中使用crypto-js對數據進行加密,后端php解密

前端Vue中使用crypto-js對數據進行加密,后端php解密

時間:2022-03-21來源:風信官網 點擊: 7858次

風信建站在項目開發中使用前后端分離技術,前端采用Vue,后端使用php,在開發過程中因某些數據需要進行加密與解密,我們采用前端插件crypto-js應用于項目中。

安裝crypto-js

npm install crypto-js

在Vue項目中編寫前端加密工具類/tools/crypto.js

/*
* crypto.js
**/

// npm install crypto-js


/**
* AES 對稱加密(不安全)
*/
let CryptoJS = require('crypto-js');

export default {
/**
* 接口數據加密函數
* @param str string 需加密的json字符串
* @param key string 加密key(16位)
* @param iv string 加密向量(16位)
* @return string 加密密文字符串
*/
encrypt(str, key, iv) {
//密鑰16位
var key = CryptoJS.enc.Utf8.parse(key);
//加密向量16位
var iv = CryptoJS.enc.Utf8.parse(iv);
var encrypted = CryptoJS.AES.encrypt(str, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.toString();
},


/**
* 接口數據解密函數
* @param str string 已加密密文
* @param key string 加密key(16位)
* @param iv string 加密向量(16位)
* @returns {*|string} 解密之后的json字符串
*/
decrypt(str, KEY, IV) {
var key = CryptoJS.enc.Utf8.parse(KEY);
var iv = CryptoJS.enc.Utf8.parse(IV);
var decrypt = CryptoJS.AES.decrypt(str, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return decrypt.toString(CryptoJS.enc.Utf8);
}

}

在Vue頁面中使用

import crypto from '@/tools/crypto.js';

//獲取當前時間戳13位 + 3位字符
var timestamp = new Date().getTime().toString() + "ithov.net";//密碼
//加密密鑰16位
// var encrypt_key = timestamp;
var encrypt_key = '1234567890123456';//長度必須為16位
console.log(encrypt_key);
//加密向量16位
var iv = '1234567890abcde';
//要加密的數據
var encrypt_string = '{"username":"888","password":"123456","terminal":"PC"}';
var encrypted_string = crypto.encrypt(encrypt_string, encrypt_key, iv);
console.log(encrypted_string);

// 解密
try{
var decrypted_string = crypto.decrypt(encrypted_string, encrypt_key, iv);
console.log(decrypted_string);//{"username":"1001","password":"123456","terminal":"PC"}
}catch(exception){//密碼錯誤
console.log(exception.message);//Malformed UTF-8 data
}

PHP后端的使用

/**
* 加密
*/
public function encode(){
//加密向量16位
$iv = "1234567890abcde";
//PHP加密秘鑰16位
$encrypt_key = date("YmdHis") . "WB";
//$encrypt_key = '1234567890123456';//長度必須為16位 //前后端密碼必須一直
//PHP加密數據
$arr = array('username' => '1001', 'password' => '12345678', 'terminal' => 'PC');
//轉換成json字符串
$encrypt_data = json_encode($arr);
$encrypted = $this->encrypt($encrypt_data, $encrypt_key, $iv);
//加密結果
var_dump($encrypted);

}


/*
* 解密
*/
public function decode(){
$encrypt_data = 'StaJnWWpHJ7Gx0lDTPKCT4s4Jg3s8wunBVBdMJlKvJqAVd/F3zQ7lOfyV8pdvgmGlkusv0tkoSEhw+/6U6vEkg=='; //加密的字符串
$encrypt_key = '1234567890123456';
$iv = "1234567890abcde";
//$decode = $this->decrypt($encrypt_data,$encrypt_key,$iv);
$decode = $this->decryptToJs($encrypt_data,$encrypt_key,$iv);
var_dump($decode);
}


/**
* 加密字符串
* @param string $data 字符串
* @param string $key 加密key
* @param string $iv 加密向量
* @return string
*/
public function encrypt($data, $key, $iv)
{
return base64_encode(openssl_encrypt($data, "AES-128-CBC", $key, true, $iv));
}

/**
* 解密字符串
* @param string $data 字符串
* @param string $key 加密key
* @param string $iv 加密向量
* @return false|object|string
*/
public function decrypt($data, $key, $iv)
{
return openssl_decrypt( $data, 'AES-128-CBC', $key, 0 , $iv );
}

/**
* 解密字符串 兼容crypto-js 如果是通過crypto-js加密 options:2
* @param string $data 字符串
* @param string $key 加密key
* @param string $iv 加密向量
* @return false|object|string
*/
public function decryptToJs($data, $key, $iv)
{
return openssl_decrypt( $data, 'AES-128-CBC', $key, 2 , $iv );
}

/**
* options 參數極為重要,它是兼容 mcrpty 算法的關鍵:
options = 0: 默認模式,自動對明文進行 pkcs7 padding,且數據做 base64 編碼處理。
options = 1: OPENSSL_RAW_DATA,自動對明文進行 pkcs7 padding, 且數據未經 base64 編碼處理。
options = 2: OPENSSL_ZERO_PADDING,要求待加密的數據長度已按 "0" 填充與加密算法數據塊長度對齊,即同 mcrpty 默認填充的方式一致,且對數據做 base64 編碼處理。注意,此模式下 openssl 要求待加密數據已按 "0" 填充好,其并不會自動幫你填充數據,如果未填充對齊,則會報錯。
故可以得出 mcrpty簇 與 openssl簇 的兼容條件如下:
1、如果 A 系統使用了 mcrypt 的默認的 "\0" 自動填充算法進行了數據加密,那 B 系統使用 openssl 進行解密時,需要選擇 OPENSSL_ZERO_PADDING 模式。這里同時要特別注意,OPENSSL_ZERO_PADDING 模式是認為數據是做了 base64 編碼處理的,如果 A 系統 mcrpty 沒有對數據做 base64_encode 處理,則 B 解密數據時還需要將數據 base64_encode 后再傳遞給 openssl_decrypt。
2、如果 A 系統手動使用了 PKCS7 對待加密數據做了處理,那 B 系統只需根據 A 系統是否對數據做了 base64 編碼處理選擇 0或 OPENSSL_ZERO_PADDING 模式即可。如果對 A 使用了 base64 編碼,則 B 使用 0 模式;如果 A 沒有使用 base64 編碼,則使用 OPENSSL_RAW_DATA 模式。
*
*/

欄目列表
推薦內容
熱點內容
展開
激情五月婷婷综合网_奇米精品一区二区三区四区_91在线码无精品_国产精品久久久久一区二区三区_日韩一区二区在线看_99国产欧美另类久久久精品_日韩电影免费一区_亚洲欧美在线另类_9色porny自拍视频一区二区_久久一区二区三区四区_日本在线不卡视频_欧美日韩三级一区二区_亚洲欧美日韩国产综合在线_国产精品影视网_欧美中文字幕一区_制服.丝袜.亚洲.中文.综合
亚洲大型综合色站| 91麻豆精品国产91久久久久久| 国产尤物一区二区| 成人激情文学综合网| 欧美亚洲自拍偷拍| 久久亚洲综合色| 亚洲一区二区在线免费观看视频| 人人狠狠综合久久亚洲| 韩国av一区二区三区| 91免费版在线| 日韩美女一区二区三区四区| 亚洲乱码国产乱码精品精98午夜| 国内精品久久久久影院一蜜桃| 欧洲一区二区三区在线| 欧美激情综合五月色丁香 | 国产午夜精品一区二区三区视频 | 亚洲摸摸操操av| 九一久久久久久| av午夜精品一区二区三区| 欧美成人a在线| 亚洲福利一二三区| 91日韩一区二区三区| 国产日韩欧美激情| 麻豆国产一区二区| 欧美高清视频不卡网| 一片黄亚洲嫩模| 成人丝袜高跟foot| 久久久99免费| 精品一区二区三区免费毛片爱| 欧美精品自拍偷拍| 亚洲综合小说图片| 不卡高清视频专区| 欧美va亚洲va国产综合| 日本伊人精品一区二区三区观看方式 | 日本不卡的三区四区五区| 色吊一区二区三区| 中文字幕一区二区不卡| 成人一道本在线| 精品区一区二区| 麻豆专区一区二区三区四区五区| 欧美人牲a欧美精品| 一区二区三区中文免费| 国产sm精品调教视频网站| 欧美tickling网站挠脚心| 青娱乐精品视频| 91精品国产手机| 日本欧美在线观看| 欧美一区在线视频| 丝袜美腿一区二区三区| 欧美日韩成人在线一区| 香蕉成人伊视频在线观看| 欧洲精品一区二区| 亚洲国产一区在线观看| 欧美日韩一区二区三区不卡| 亚洲成人免费观看| 欧美精品123区| 亚洲成人1区2区| 欧美视频一区在线| 午夜成人在线视频| 日韩电影一区二区三区| 91精品国产综合久久蜜臀| 丝袜美腿亚洲色图| 欧美一区三区四区| 久久精品免费观看| 久久亚洲二区三区| 国产精品影音先锋| 国产日韩精品一区| 99国产精品久久久久| 国产精品天天看| 99久久免费精品| 亚洲欧美色综合| 在线观看日韩高清av| 婷婷夜色潮精品综合在线| 欧美一区二区播放| 精品一区二区久久久| 精品国产一区二区亚洲人成毛片| 狠狠色狠狠色综合| 国产日韩欧美精品电影三级在线| 成人午夜电影小说| 久久精子c满五个校花| 日韩精彩视频在线观看| 日韩欧美国产三级电影视频| 国产一区二区在线电影| 国产精品福利av| 在线中文字幕一区二区| 秋霞午夜av一区二区三区| 久久这里只有精品首页| gogogo免费视频观看亚洲一| 依依成人综合视频| 制服丝袜中文字幕一区| 国产精品综合av一区二区国产馆| 中文字幕一区二区三区四区不卡| 在线精品亚洲一区二区不卡| 日韩av电影一区| 337p粉嫩大胆噜噜噜噜噜91av| 成人午夜免费av| 亚洲资源中文字幕| 欧美高清视频一二三区 | 久久新电视剧免费观看| 成人少妇影院yyyy| 亚洲精品自拍动漫在线| 欧美一区二区在线观看| 丁香一区二区三区| 亚洲一区二区高清| 精品对白一区国产伦| av色综合久久天堂av综合| 亚洲午夜视频在线观看| 日韩一区和二区| www.亚洲人| 中文字幕一区三区| 色视频欧美一区二区三区| 日本sm残虐另类| 国产精品丝袜久久久久久app| 欧美日韩视频在线第一区 | 欧美男人的天堂一二区| 九九九久久久精品| 欧美色综合天天久久综合精品| 蜜桃av一区二区在线观看| 久久久久久久久岛国免费| 青椒成人免费视频| 日韩精品一区二区三区中文不卡| 成人av高清在线| 日韩avvvv在线播放| 欧美精品一区二区三区高清aⅴ| 不卡视频在线看| 蜜桃精品视频在线| 日韩一区欧美小说| 欧美日韩aaaaa| 国产91在线观看丝袜| 婷婷成人综合网| 国产精品国产三级国产有无不卡 | www..com久久爱| 日韩在线卡一卡二| 18欧美亚洲精品| 精品免费视频.| 欧美日本精品一区二区三区| 99久久综合色| 国内国产精品久久| 久久综合九色综合97婷婷女人| 欧美视频一区在线观看| 99精品视频中文字幕| 黄色精品一二区| 亚洲欧美怡红院| 国产日韩在线不卡| 精品国产露脸精彩对白| 9191久久久久久久久久久| 91色九色蝌蚪| 青青草国产精品亚洲专区无| 亚洲国产视频在线| 亚洲男同性恋视频| 国产精品嫩草影院av蜜臀| 日韩一区二区三区视频在线| 久久久99精品久久| 欧美成人vps| 日韩一级大片在线观看| 亚洲一区二区三区影院| 中文字幕一区二区在线观看 | 国产色产综合产在线视频| 91精品国产综合久久小美女| 国产乱对白刺激视频不卡| 日本成人在线看| 亚洲成a人片在线不卡一二三区 | 国产一区二区中文字幕| 久久 天天综合| 捆绑调教一区二区三区| 男女性色大片免费观看一区二区 | 久久只精品国产| 欧美精品一区二区在线播放| 日韩欧美国产三级| 日韩一区二区免费在线观看| 在线播放中文一区| 777午夜精品视频在线播放| 欧美日本一区二区三区| 欧美精品1区2区3区| 99久久综合狠狠综合久久| 北岛玲一区二区三区四区| 青青草国产成人av片免费| 天天综合天天综合色| 亚洲va国产va欧美va观看| 亚洲一区二区精品视频| 亚洲永久精品国产| 一区二区三区在线观看欧美| 亚洲欧美偷拍卡通变态| 国产三级精品三级| 日韩精品一区国产麻豆| 久久亚洲综合av| 懂色av中文字幕一区二区三区| 麻豆91精品91久久久的内涵| 亚洲精品视频观看| 亚洲三级在线观看| 国产精品视频免费看| 欧美日韩国产免费| 91超碰这里只有精品国产| 99久久99久久久精品齐齐| 欧美性大战xxxxx久久久| www.欧美亚洲| 国产真实乱偷精品视频免| 国产成人免费高清| 极品少妇一区二区| 精品久久久久99|