클라이언트측 JavaScript의 Base64 인코딩 및 디코딩
JavaScript는 base64 인코딩 및 디코딩을 위한 다양한 옵션을 제공합니다.
네이티브 브라우저 지원
Firefox, Chrome, Safari, Opera 및 IE10과 같은 최신 브라우저는 기본적으로 base64 인코딩을 지원합니다. 인코딩에는 btoa() 함수를, 디코딩에는 atob() 함수를 사용할 수 있습니다.
Server-Side JavaScript
Node.js와 같은 서버측 JavaScript 환경의 경우, base64 디코딩을 위해 버퍼를 활용할 수 있습니다.
크로스 브라우저 라이브러리
크로스 브라우저 솔루션이 필요한 경우 CryptoJS와 같은 기존 라이브러리를 활용할 수 있습니다. 또는 답변에 제공된 것과 같은 코드를 사용할 수 있습니다.
// 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; }
제공된 크로스 브라우저 코드는 다른 브라우저와의 호환성을 확인하기 위해 추가 테스트가 필요할 수 있습니다. 보다 안정적인 크로스 브라우저 기능을 위해서는 평판이 좋은 라이브러리를 사용하는 것이 좋습니다.
위 내용은 다양한 브라우저 지원과 서버 측 환경을 고려하여 JavaScript에서 Base64 인코딩 및 디코딩을 어떻게 수행할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!