Vue + PHP AES數據傳輸加密,payload加密

這裏用的AES的ECB模式,示例使用場景,登錄

Vue(這裏是定義的全局方法):

step1:安裝

npm install crypto-js --save-dev

step2:

在main.js中引入,創建全局加密、解密方法

//引入
import CryptoJS from 'crypto-js';

//創建方法
//AES加密
Vue.prototype.$encrypt = function(word, keyStr) {

  keyStr = keyStr ? keyStr : 'test123456789012'; //判斷是否存在ksy,不存在就用定義好的key

  var key = CryptoJS.enc.Utf8.parse(keyStr);

  var srcs = CryptoJS.enc.Utf8.parse(word);

  var encrypted = CryptoJS.AES.encrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });

  return encrypted.toString();

}

//AES解密
Vue.prototype.$decrypt = function(word, keyStr) {

  keyStr = keyStr ? keyStr : 'test123456789012';

  var key = CryptoJS.enc.Utf8.parse(keyStr);

  var decrypt = CryptoJS.AES.decrypt(word, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });

  return CryptoJS.enc.Utf8.stringify(decrypt).toString();

}

step3:使用


      var password = this.$encrypt(this.password)//密碼加密傳輸
      doLogin({ username: this.username, password: password }).then(
        res => {
          if (res.data.code == 200) {
            var res_json_str = this.$decrypt(res.data.data)//解密
            var res_data = JSON.parse(res_json_str)
            console.log("返回:"+res_data );
            successAlert("登錄成功");
          } else {
            errorAlert(res.data.msg);
          }
        }
      );

 PHP:

可見我前面的文章,PHP AES加密

 

tips:關於登錄時密碼爲什麼加密?使用加密後,這個地方就看不到密碼啦

payload內容都是明文記錄,除非記錄的是加密數據,否則不排除泄露隱私數據的可能。所以不推薦在payload中記錄任何敏感數據哈

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章