1. 程式人生 > 其它 >前端常見資料加密問題概述

前端常見資料加密問題概述

技術標籤:前端前端資料加密base64加密md5加密sha1加密

前端資料加密問題

前端一般使用md5、base64加密、sha1加密資料,來處理使用者敏感資訊。

函式escape()和unescape()

最簡單的加密解密:

  • escape() 函式可對字串進行編碼
    • 不會對 ASCII 字母和數字進行編碼,也不會對下面這些 ASCII 標點符號進行編碼: * @ - _ + . / 。其他所有的字元都會被轉義序列替換。
  • unescape() 函式可對通過 escape() 編碼的字串進行解碼。
    • 通過找到形式為 %xx 和 %uxxxx 的字元序列(x 表示十六進位制的數字),用 Unicode 字元 \u00xx 和 \uxxxx 替換這樣的字元序列進行解碼。
window.escape('中國')
"%u4E2D%u56FD"

window.unescape('%u4E2D%u56FD')
"中國"

base64加密

介紹:

​ base64是網路上最常見的用於傳輸8bit位元組碼的編碼方式之一,base64就是一種基於64個可列印字元來表示二進位制資料的方法。

https://en.wikipedia.org/wiki/Base64

常用js base64加密庫:

​ https://github.com/dankogai/js-base64

原生js已經支援base64加密及解密:

  • 加密 window.btoa(decodeData)
  • 解密window.atob(encodeData)
window.btoa('huarukeji')      // "aHVhcnVrZWpp"

window.atob('aHVhcnVrZWpp')   // "huarukeji"

在這裡插入圖片描述

對於中文進行解密及加密之前需要先對中文進行轉碼:

  • encodeURIComponent() 函式可把字串作為 URI 元件進行編碼。
    • 不會對 ASCII 字母和數字進行編碼,也不會對這些 ASCII 標點符號進行編碼: - _ . ! ~ * ’ ( ) 。
    • 其他字元(比如 :;/?