w35l3y

base64_encode

Oct 25th, 2013
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //  Found here : http://stackoverflow.com/a/7372816/157873
  2.  
  3. function base64_encode (str) {
  4.     var CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  5.     var out = "", i = 0, len = str.length, c1, c2, c3;
  6.     while (i < len) {
  7.         c1 = str.charCodeAt(i++) & 0xff;
  8.         if (i == len) {
  9.             out += CHARS.charAt(c1 >> 2);
  10.             out += CHARS.charAt((c1 & 0x3) << 4);
  11.             out += "==";
  12.             break;
  13.         }
  14.         c2 = str.charCodeAt(i++);
  15.         if (i == len) {
  16.             out += CHARS.charAt(c1 >> 2);
  17.             out += CHARS.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
  18.             out += CHARS.charAt((c2 & 0xF) << 2);
  19.             out += "=";
  20.             break;
  21.         }
  22.         c3 = str.charCodeAt(i++);
  23.         out += CHARS.charAt(c1 >> 2);
  24.         out += CHARS.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));
  25.         out += CHARS.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6));
  26.         out += CHARS.charAt(c3 & 0x3F);
  27.     }
  28.     return out;
  29. }
Advertisement
Add Comment
Please, Sign In to add comment