js中的加密解密
阿新 • • 發佈:2021-01-28
技術標籤:javascript
一、對數字和字母進行編碼
var str = "abc21134sdssd"; console.log(btoa(str));//YWJjMjExMzRzZHNzZA== console.log(atob("YWJjMjExMzRzZHNzZA==")); console.log(escape(str)); console.log(encodeURIComponent(str));
經過測試發現,escape()和encodeURIComponent()不能對數字和字母進行編碼,而btoa()可以
二、對中文進行編碼
var str1 = "我是中文"; console.log(escape(str1));//%u6211%u662F%u4E2D%u6587 console.log(unescape("%u6211%u662F%u4E2D%u6587")); console.log(encodeURIComponent(str1));//%E6%88%91%E6%98%AF%E4%B8%AD%E6%96%87 console.log(decodeURIComponent("%E6%88%91%E6%98%AF%E4%B8%AD%E6%96%87")); console.log(btoa(str1));
經過測試發現,btoa()不能對中文進行編碼,但escape()和encodeURIComponent()可以
三、組合編碼和解碼
為解決上述問題,可以採用
btoa(unescape(encodeURIComponent())));來進行編碼,然後再通過decodeURIComponent(escape(atob()))的組合進行解碼