常用js數據加密

常用js數據加密

  1. 原生js已經支持base64加密及解密
//加密
window.btoa(this.shop)
//解密
window.atob(this.shop)

但是,window.btoa並不支持中文加密,可以使用曲線救國的方法

//加密
window.btoa(encodeURIComponent(this.company_name))
//解密
decodeURIComponent(window.atob(this.company_name))

不過,使用encode中文轉碼在編譯真的是‘曲線救國了’!

  1. md5加密

MD5消息摘要算法(英語:MD5 Message-Digest Algorithm),一種被廣泛使用的密碼散列函數,可以產生出一個128位(16字節)的散列值(hash value),用於確保信息傳輸完整一致

常用js md5庫
https://github.com/blueimp/JavaScript-MD5

npm install crypto-js
//使用crypto
//md5.js
import crypto from 'crypto';
export default ({
//將對象以‘鍵名=鍵值’方式存儲到數組中,再以‘&’連接並加密,
  getSign(params){
    let objsort = this.objKeySort(params);
    let arr = [];
    for (let i in objsort) {
      arr.push((i + "=" + objsort[i]));
    }
    var  md5 = crypto.createHash("md5");
    md5.update(arr.join("&")); //需要加密的密碼
    return md5.digest('hex').toUpperCase();  //password 加密完的密碼
  },
  //排序的函數
  objKeySort(obj) {
    //先用Object內置類的keys方法獲取要排序對象的屬性名,再利用Array原型上的sort方法對獲取的屬性名進行排序,newkey是一個數組
    var newkey = Object.keys(obj).sort();
    var newObj = {};//創建一個新的對象,用於存放排好序的鍵值對
    for (var i = 0; i < newkey.length; i++) {//遍歷newkey數組
      newObj[newkey[i]] = obj[newkey[i]];//向新創建的對象中按照排好的順序依次增加鍵值對
    }
    return newObj;//返回排好序的新對象
  }
})
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章