1. 程式人生 > 其它 >js中的加密解密

js中的加密解密

技術標籤: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()))的組合進行解碼