<!DOCTYPE HTML> <HTML LANG = " EN " > <HEAD> <メタ文字コード= " UTF-8 " > <タイトル> www.jb51.net aes.js </ TITLE> </ HEAD> <BODY> <スクリプト> // Base64でObjectvar作成 のBase64 = { _keyStrを:" ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 + / = " 、 エンコード:関数(E){ VARの T = "" ; VaRのN、R、I、S、O、U、。 VAR F = 0 ; Base64._utf8_encode(E); 一方、(F < e.length){ N = e.charCodeAt(F ++ )。 R = e.charCodeAt(F ++ )。 I = e.charCodeAt(F ++ )。 S = N >> 2 。 O =(N&3)<< 4 | R >> 4 。 U =(R&15)<< 2 | 私>> 6 。= I&63 ; もし(ますisNaN(R)){ U = A = 64 }そう であれば(ますisNaN(I)){ = 64 } 、T = T + この ._keyStr.charAt(S)+ この ._keyStr.charAt(O)+ この ._keyStr.charAt(U)+ この._keyStr.charAt( A) } 戻りT }、 デコード:関数(E){ VARの T = "" ; VAR N、R、I。 VAR S、O、U、。 VAR F = 0 ; E = e.replace(/ [^ A-ZA-z0- 9 + / =] / gで、"" ); 同時に(F < e.length){ S = この ._keyStr.indexOf(e.charAt(F ++ ))。 O = この ._keyStr.indexOf(e.charAt(F ++ ))。 U = この ._keyStr.indexOf(e.charAt(F ++ ))。= この ._keyStr.indexOf(e.charAt(F ++ ))。 N = sの<< 2 | O >> 4 。 R =(O&15)<< 4 | U >> 2 。 I =(U&3)<< 6 | A; トン = T + に、String.fromCharCode(N) もし(!U = 64 ){ T = T + に、String.fromCharCode(R) } であれば(=!64 ){ T = T + に、String.fromCharCode(I) } } 、T = Base64._utf8_decode(T)。 戻りT }、_utf8_encode:関数(E){ E = e.replace(/ RN / gであり、" N " )。 VaRのトン= "" ; 用(VARはn = 0; N <e.length。N ++ ){ VARの R = e.charCodeAt(N)。 もし(R < 128 ){ T + = に、String.fromCharCode(R) } そう であれば(R> 127 && R < 2048 ){ T + =に、String.fromCharCode(R >> 6 | 192 )。 T + =に、String.fromCharCode(R&63 | 128 ) } 他{ T + =に、String.fromCharCode(R >> 12 | 224)。 T+ =に、String.fromCharCode(R >> 6&63 | 128 )。 T + =に、String.fromCharCode(R&63 | 128 ) } } 戻りT }、_utf8_decode:関数(E){ VARの T = "" ; VAR N = 0 ; VAR R = C1 = C2 = 0 。 一方、(N < e.length){ R = e.charCodeAt(N)。 もし(R < 128 ){ T + =String.fromCharCode(R) N ++ } そう であれば(R> 191 && R < 224 ){ C2 = e.charCodeAt(N + 1 )。 T + =に、String.fromCharCode((R&31)<< 6 | C2&63 )。 N + = 2 } 他{ C2 = e.charCodeAt(N + 1 )。 C3 = e.charCodeAt(N + 2 )。 T + =に、String.fromCharCode((R&15)<< 12| (C2&63)<< 6 | C3&63 )。 N + = 3 } } 戻りトン } } // 文字列を定義 するvar 文字列 = " Hello Worldのを!" ; // 文字列エンコード するvar encodedString = Base64.encode(文字列); console.log(encodedString)。// 出力: "SGVsbG8gV29ybGQh" // 文字列のデコード するvar decodedString = Base64.decode(encodedStringを)。 console.log(decodedString)。// :出力に"Hello World!" // ; Base64でのオブジェクト定義がLatin1文字に制限されないもトランスコードすることができますから、文字 のvar 文字列 = " !こんにちは、CCCCC " ; ヴァール encodedString = Base64.encode(文字列); // "SGVsbG8sIOS4reWbve 8gQ == +" はconsole.log(encodedString); VARの decodedString = Base64.decode(encodedString) にconsole.log(decodedString) はconsole.log(" hahahhaha " ); </ SCRIPT> </ body> </ HTML>
参考:
https://www.cnblogs.com/songzhixue/p/11253243.html