Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. function base64_decode(str){
  2. var c1, c2, c3, c4;
  3. var base64DecodeChars = new Array(
  4. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  5. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  6. -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57,
  7. 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6,
  8. 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
  9. 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
  10. 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1,
  11. -1, -1
  12. );
  13. var i=0, len = str.length, string = '';
  14.  
  15. while (i < len){
  16. do{
  17. c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff]
  18. } while (
  19. i < len && c1 == -1
  20. );
  21.  
  22. if (c1 == -1) break;
  23.  
  24. do{
  25. c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff]
  26. } while (
  27. i < len && c2 == -1
  28. );
  29.  
  30. if (c2 == -1) break;
  31.  
  32. string += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));
  33.  
  34. do{
  35. c3 = str.charCodeAt(i++) & 0xff;
  36. if (c3 == 61)
  37. return string;
  38.  
  39. c3 = base64DecodeChars[c3]
  40. } while (
  41. i < len && c3 == -1
  42. );
  43.  
  44. if (c3 == -1) break;
  45.  
  46. string += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2));
  47.  
  48. do{
  49. c4 = str.charCodeAt(i++) & 0xff;
  50. if (c4 == 61) return string;
  51. c4 = base64DecodeChars[c4]
  52. } while (
  53. i < len && c4 == -1
  54. );
  55.  
  56. if (c4 == -1) break;
  57.  
  58. string += String.fromCharCode(((c3 & 0x03) << 6) | c4)
  59. }
  60. return string;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement