Base64 인코딩

Base64 인코딩 도구를 사용하면 Base64 방식으로 입력한 텍스트를 암호화할 수 있습니다. 원하는 경우 Base64 디코딩 도구를 사용하여 암호화된 Base64 코드를 디코딩할 수 있습니다.

Base64 인코딩이란 무엇입니까?

Base64 인코딩은 일부 제한된 문자 인코딩만 사용하는 환경(xml, html, 스크립트, 인스턴트 메시징 응용 프로그램과 같이 모든 문자 코드를 사용할 수 없는 환경)에서 이진 데이터를 전송할 수 있도록 하는 인코딩 체계입니다. 이 체계의 문자 수는 64이며 Base64라는 단어의 숫자 64는 여기에서 유래했습니다.

Base64 인코딩을 사용하는 이유

Base64 인코딩의 필요성은 미디어가 원시 바이너리 형식으로 텍스트 기반 시스템에 전송될 때 발생하는 문제에서 비롯됩니다. 텍스트 기반 시스템(예: 이메일)은 이진 데이터를 특수 명령 문자를 포함한 광범위한 문자로 해석하기 때문에 전송 매체로 전송되는 대부분의 이진 데이터는 이러한 시스템에서 잘못 해석되고 전송 과정에서 손실되거나 손상됩니다. 프로세스.

이러한 전송 문제를 피하는 방식으로 이러한 바이너리 데이터를 인코딩하는 한 가지 방법은 Base64 인코딩 형식의 일반 ASCII 텍스트로 보내는 것입니다. 이것은 일반 텍스트 이외의 데이터를 보내기 위해 MIME 표준에서 사용하는 기술 중 하나입니다. PHP 및 Javascript와 같은 많은 프로그래밍 언어에는 Base64 인코딩을 사용하여 전송된 데이터를 해석하기 위한 Base64 인코딩 및 디코딩 기능이 포함되어 있습니다.

Base64 인코딩 로직

Base64 인코딩에서 3 * 8 비트 = 24 비트의 3바이트로 구성된 데이터는 6비트의 4개 그룹으로 나뉩니다. 이 4개의 6비트 그룹 중 [0-64] 사이의 10진수 값에 해당하는 문자를 Base64 테이블에서 일치시켜 인코딩합니다. Base64 인코딩의 결과로 얻은 문자 수는 4의 배수여야 합니다. 4의 배수가 아닌 인코딩된 데이터는 유효한 Base64 데이터가 아닙니다. Base64 알고리즘으로 인코딩할 때 인코딩이 완료되면 데이터의 길이가 4의 배수가 아닌 경우 4의 배수가 될 때까지 인코딩 끝에 "="(등호) 문자가 추가됩니다. 예를 들어 인코딩의 결과로 10자 Base64 인코딩 데이터가 있는 경우 끝에 두 개의 "=="를 추가해야 합니다.

Base64 인코딩 예

예를 들어 세 개의 ASCII 숫자 155, 162 및 233을 사용합니다. 이 세 숫자는 100110111010001011101001의 이진 스트림을 형성합니다. 이미지와 같은 이진 파일에는 수만 또는 수십만 개의 0과 1에 대해 작동하는 이진 스트림이 포함되어 있습니다. Base64 인코더는 이진 스트림을 6개의 문자 그룹으로 분할하는 것으로 시작합니다. 6자 바이너리 스트림은 바이너리(또는 기본) 간에 변환됩니다. 2) 위치 제곱으로 이진 배열에서 1로 표시되는 각 값을 제곱하여 십진법(10진수) 문자로 변환합니다. 오른쪽에서 시작하여 왼쪽으로 이동하고 0에서 시작하여 이진 스트림의 값은 2^0, 2^1, 2^2, 2^3, 2^4, 2^를 나타냅니다. 5.

여기에 그것을 보는 또 다른 방법이 있습니다. 왼쪽부터 각 위치는 1, 2, 4, 8, 16 및 32의 가치가 있습니다. 슬롯에 이진수 1이 있으면 해당 값을 추가합니다. 슬롯에 0이 있으면 누락된 것입니다. 이진 배열 100110 회전 38: 0 * 2 ^ 01 + 1 * 2 ^ 1 + 1 * 2 ^ 2 + 0 * 2 ^ 3 + 0 * 2 ^ 4 + 1 * 2 ^ 5 = 0 + 2 십진수 + 4 + 0 + 0 + 32. Base64 인코딩은 이 바이너리 문자열을 6비트 값 38, 58, 11 및 41로 나눕니다. 마지막으로 이 숫자는 Base64 인코딩 테이블을 사용하여 ASCII 문자로 변환됩니다.