JavaScriptのbase64で暗号化と復号化

 

<!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 >> 663 | 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

https://www.cnblogs.com/chenglee/p/9037265.html

https://www.cnblogs.com/sunyuweb/p/9092367.html

おすすめ

転載: www.cnblogs.com/sea-stream/p/11517821.html