Encodage et décodage Base64 dans JavaScript côté client
JavaScript offre une gamme d'options pour l'encodage et le décodage base64 :
Prise en charge native des navigateurs
Navigateurs modernes tels que car Firefox, Chrome, Safari, Opera et IE10 offrent une prise en charge native de l'encodage base64. Vous pouvez utiliser la fonction btoa() pour l'encodage et atob() pour le décodage.
JavaScript côté serveur
Pour les environnements JavaScript côté serveur comme Node.js, vous pouvez utiliser des tampons pour le décodage base64.
Cross-Browser Bibliothèques
Si vous avez besoin d'une solution multi-navigateurs, vous pouvez exploiter les bibliothèques existantes telles que CryptoJS. Vous pouvez également utiliser un code comme celui fourni dans la réponse :
// Base64 encoding function encodeBase64(str) { var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, enc = ''; while (i < str.length) { o1 = str.charCodeAt(i); i++; if (i < str.length) { o2 = str.charCodeAt(i); i++; if (i < str.length) { o3 = str.charCodeAt(i); i++; bits = o1 << 16 | o2 << 8 | o3; } else { bits = o1 << 16 | o2 << 8; } } else { bits = o1 << 16; } h1 = bits >> 18 & 0x3f; h2 = bits >> 12 & 0x3f; h3 = bits >> 6 & 0x3f; h4 = bits & 0x3f; enc += b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4); } if (ac >= 1) { enc += b64.charAt(h1) + b64.charAt(h2) + '='; } if (ac >= 2) { enc += b64.charAt(h1) + '='; } return enc; } // Base64 decoding function decodeBase64(str) { var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, dec = ''; while (i < str.length) { h1 = b64.indexOf(str.charAt(i)); i++; h2 = b64.indexOf(str.charAt(i)); i++; h3 = b64.indexOf(str.charAt(i)); i++; h4 = b64.indexOf(str.charAt(i)); i++; bits = h1 << 18 | h2 << 12 | h3 << 6 | h4; o1 = bits >> 16 & 0xff; o2 = bits >> 8 & 0xff; o3 = bits & 0xff; dec += String.fromCharCode(o1); if (ac >= 1) { dec += String.fromCharCode(o2); } if (ac >= 2) { dec += String.fromCharCode(o3); } } return dec; }
Notez que le code multi-navigateur fourni peut nécessiter des tests supplémentaires pour garantir la compatibilité avec différents navigateurs. Il est conseillé d'utiliser une bibliothèque réputée pour une fonctionnalité multi-navigateur plus fiable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!