Este artículo describe el cifrado y el descifrado de Base64 implementado por JS. Compártelo para su referencia, como sigue:
Código completo:
<HTML><HEAD><TITLE>Base64</TITLE><script language=javascript>var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var base64DecodeChars = new Array( -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 27, 27, 29, 30, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29. 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);<HTML><HEAD><TITLE>Base64</TITLE><script language=JavaScript>var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var base64DecodeChars = new Array( -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1); funciones Base64 endoode (STR) {var, i, len, len; var c1, c2, c3; len = str.length; i = 0; out = ""; while (i <len) {c1 = str.charcodeat (i ++) & 0xff; if (i == len) {out += base64EncodeChars.charat (c1 >> 2); out += base64EncodeChars.Charat ((C1 y 0x3) << 4); out += "=="; romper; } c2 = str.charcodeat (i ++); if (i == len) {out += base64EncodeChars.charat (c1 >> 2); out += base64EncodeChars.Charat ((C1 y 0x3) << 4) | ((C2 y 0xf0) >> 4)); out += base64EncodeChars.Charat ((C2 y 0xf) << 2); out += "="; romper; } c3 = str.charcodeat (i ++); out += base64EncodeChars.Charat (C1 >> 2); out += base64EncodeChars.Charat ((C1 y 0x3) << 4) | ((C2 y 0xf0) >> 4)); out += base64EncodeChars.Charat ((((C2 y 0xf) << 2) | ((C3 y 0xc0) >> 6)); out += base64CodeChars.Charat (C3 y 0x3f); } return out;} función base64Decode (str) {var c1, c2, c3, c4; var i, len, fuera; len = str.length; i = 0; out = ""; while (i <len) { / * c1 * / do {c1 = base64DecodeChars [str.charcodeat (i ++) & 0xff]; } while (i <len && c1 == -1); if (c1 == -1) ruptura; / * c2 */ do {c2 = base64DecodeChars [str.charcodeat (i ++) & 0xff]; } while (i <len && c2 == -1); if (c2 == -1) ruptura; out += string.FromCharCode ((C1 << 2) | ((C2 y 0x30) >> 4)); / * c3 */ do {c3 = str.charcodeat (i ++) & 0xff; if (c3 == 61) regresar; C3 = base64DecodeChars [C3]; } while (i <len && c3 == -1); if (c3 == -1) ruptura; out += string.FromCharCode ((((C2 y 0xf) << 4) | ((C3 y 0x3c) >> 2)); / * c4 */ do {c4 = str.charcodeat (i ++) & 0xff; if (c4 == 61) regresar; C4 = base64DecodeChars [C4]; } while (i <len && c4 == -1); if (c4 == -1) ruptura; out += String.FromCharCode ((((C3 y 0x03) << 6) | C4); } return out;} function utf16to8 (str) {var out, i, len, c; out = ""; len = str.length; para (i = 0; i <len; i ++) {c = str.charcodeat (i); if ((c> = 0x0001) && (c <= 0x007f)) {out += str.charat (i); } else if (c> 0x07ff) {out += String.FromCharCode (0xe0 | ((c >> 12) y 0x0f)); out += string.FromCharCode (0x80 | ((c >> 6) y 0x3f)); out += string.FromCharCode (0x80 | ((c >> 0) y 0x3f)); } else {out += string.FromCharCode (0xc0 | ((c >> 6) y 0x1f)); out += string.FromCharCode (0x80 | ((c >> 0) y 0x3f)); }} return out;} function utf8to16 (str) {var out, i, len, c; var char2, char3; out = ""; len = str.length; i = 0; while (i <len) {c = str.charcodeat (i ++); Switch (C >> 4) {Caso 0: Caso 1: Caso 2: Caso 3: Caso 4: Caso 5: Caso 6: Caso 7: // 0xxxxx Out += Str.Charat (I-1); romper; Caso 12: caso 13: // 110x xxxx 10xx xxxx char2 = str.charcodeat (i ++); out += string.FromCharCode ((((c & 0x1f) << 6) | (char2 y 0x3f)); romper; Caso 14: // 1110 xxxx 10xx xxxx 10xx xxxx char2 = str.charcodeat (i ++); char3 = str.charcodeat (i ++); out += string.FromCharCode ((((c & 0x0f) << 12) | ((char2 & 0x3f) << 6) | ((char3 y 0x3f) << 0)); romper; }} return out;} function doit () {var f = document.f f.output.value = base64Encode (utf16to8 (f.source.value)) f.decode.value = utf8to16 (base64Decode (f.output.Value))} </script> </scent> <hbod> NAME="f">Original code<BR><TEXTAREA NAME="source" ROWS=4 COLS=60 WRAP="soft"></TEXTAREA><BR><BR>Base64 encode<BR><TEXTAREA NAME="output" ROWS=4 COLS=60 WRAP="soft"></TEXTAREA><BR><BR>Base64 decode<BR><TEXTAREA NAME="decode" ROWS=4 COLS=60 WRAP = "Soft"> </TextAREA> <br> <br> <input type = button value = "convert" onClick = "doit ()"> </form> </body>Para el cifrado y el descifrado de Base64, también puede consultar las herramientas en línea de este sitio :
Herramienta de codificación y decodificación de Base64
Para obtener más contenido cifrado y descifrado, consulte:
Herramienta de cifrado en línea MD5
Herramienta de cifrado hexadecimal de URL
Thunder, Express, Herramientas de cifrado/descifrado de URL de tornado
Herramienta de cifrado en línea SHA1
Para obtener más información sobre JavaScript, consulte los temas de este sitio: "Resumen de las habilidades de cifrado y descifrado de JavaScript", "Resumen de JavaScript Cambio de efectos y habilidades especiales", "Summary of JavaScript Search Algorithm Skills", "Summary of JavaScript Animation Effectes especiales y habilidades", "Summary of JavaScript Errors and Debuggging Habilidades", ", Summary Daturates y Habilidades de animación" y Summary de JaVaScript ", y Summary de JaVaScript Data y Summary de JaVaScript", "Summary y Summary de JaVaScript. Habilidades de algoritmo "," Resumen del algoritmo y habilidades de traversal JavaScript "y" Resumen del uso de la operación matemática de JavaScript "
Espero que este artículo sea útil para la programación de JavaScript de todos.