Home > JS Base64 | Javascript AJAX CSS > Javascript Base64 encoder & decoder(Google Gadget)

Javascript Base64 encoder & decoder(Google Gadget)


Javascript base64 encoder and decoder.

手軽に Base64 エンコード(暗号化) & デコード(解読)ができる Google gadget を作りました。

使い方は、上のテキストエリアに貼り付けてボタンを押すだけです。貼り付けるエリアは、data1,data2, data3, data4 の4ヶ所あります。ソースコードもBase64 function の中に文字コード変換のスクリプトを書いてます。下に書いている Javascript のソースコードもシンプルにしましたので(120行くらい)、少しは分かりやすいと思います。対応文字コードは1~3バイトまでです。4バイト以上はまず使うことはないので一般的にテキストエリアに貼り付ける範囲内のものはBase64暗号化・解読が可能です。

    1バイト
  • ASCIIの全て(実装系によりJIS X 0201/Windows-31Jの当該エリアの場合あり)
    • 2バイト
  • JIS X 0208の非漢字の一部
    • 3バイト
  • JIS X 0201の8ビット文字(半角カタカナ)
  • JIS X 0208の漢字エリアの全て
  • JIS X 0212の漢字エリアの全て
  • JIS X 0213の第3・4水準漢字の一部
  • Windows-31Jの拡張文字エリア全て
  • 『ウィキペディア(Wikipedia)』

    Google Gadget の貼り付けコードです。ブログやウェブページに貼り付けられます。

    Source code of Base64_encode, Base64_decode Javascript function.

    1    /****************************************************************************
    2     Javascript Base64 encoder and decoder
    3    
    4     4 Oct. 2008 Samurai-Logic.com
    5    ****************************************************************************/
    6    
    7    var chrs="ABCDEFGHIJKLMNOPQRSTUVWXYZ";    //grobal variable 
    8    
    9    function Base64_encode(str2){
    10   
    11   chrs+=chrs.toLowerCase()+"0123456789+/";
    12   
    13   str2=str2.replace(/\n/g,""); 
    14   
    15   str=[];
    16   var out="";
    17   var j=str2.length;
    18   var z=0;
    19   /*---------------------------------------------------------
    20    In case char is more than 2 bite
    21   ----------------------------------------------------------*/
    22       for (var i=0; z<j;i++) {
    23          var x=str2.charCodeAt(z);
    24   
    25           if(x<128) str[i]=str2.charCodeAt(z);    //  1 Bite(0x00-0x7f) 
    26   
    27           elseif(x<2048) {            //  2 Bites(0x80-0x7ff) 
    28           str[i++] = ((192) | (x >> 6));
    29           str[i] = ((128) | (x & 63));
    30   
    31               }elseif (x < 65536){        //  3 Bites(0x800-0xffff)=2sup16 
    32                   str[i++] = ((224) | ( x >> 12 ));
    33                   str[i++] = ((128) | ((x >> 6 ) & 63)); //3f=63 
    34                   str[i] = ((128) | ( x & 63));
    35   
    36               }else{                // 4 Bites return; 
    37           out=("4 Bites character is not suported"); return; //will never happen here 
    38               }
    39       z++;
    40       }
    41   
    42   /*------------------------------------------------------
    43    Base64 encode
    44   -------------------------------------------------------*/
    45   
    46       var temp=str.length;
    47   
    48       for (var i = 0; i < temp; i += 3){
    49   
    50       var len = ((temp-i)>=3)? 3 : temp-i;
    51   
    52           out += chrs.charAt((str[i] >> 2))
    53   
    54           if (len == 1){        //1 bite 
    55               out += chrs.charAt((str[i] & 3) << 4) + "==";
    56   
    57           } elseif (len == 2) {    //2 bites 
    58               out    += chrs.charAt(((str[i] & 3) << 4) | (str[i+1] >> 4))
    59                   +  chrs.charAt ((str[i+1] & 15) << 2) + "=";
    60   
    61           } else {        //3 bites 
    62               out    += chrs.charAt(((str[i] & 3) << 4) | (str[i+1] >> 4))
    63                   +  chrs.charAt(((str[i+1] & 15) << 2) | (str[i+2] >> 6))
    64                   +  chrs.charAt ((str[i+2] & 63));    /* NOTE:63=0x3f, 15=0xf . */
    65           }
    66       }
    67   return out;
    68   }
    69   

    Comments:0

    Comment Form

    Home > JS Base64 | Javascript AJAX CSS > Javascript Base64 encoder & decoder(Google Gadget)

    Return to page top