> 웹 프론트엔드 > JS 튜토리얼 > 다양한 브라우저 지원과 서버 측 환경을 고려하여 JavaScript에서 Base64 인코딩 및 디코딩을 어떻게 수행할 수 있습니까?

다양한 브라우저 지원과 서버 측 환경을 고려하여 JavaScript에서 Base64 인코딩 및 디코딩을 어떻게 수행할 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2024-12-12 18:03:15
원래의
187명이 탐색했습니다.

How can I perform Base64 encoding and decoding in JavaScript, considering different browser support and server-side environments?

클라이언트측 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿