前端常見資料加密問題概述
阿新 • • 發佈:2021-02-13
技術標籤:前端前端資料加密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 標點符號進行編碼: - _ . ! ~ * ’ ( ) 。
- 其他字元(比如 :;/?