베이스64 편집하기
최신판 | 당신의 편집 | ||
6번째 줄: | 6번째 줄: | ||
== 특징 == | == 특징 == | ||
Base 64라는 의미는 64진법이라는 의미이다. 화면에 표시되는 ASCII 문자들을 써서 표현할 수 있는 가장 큰 진법이기 때문인데, Base 64는 전자 메일을 통한 이진 데이터 전송에 많이 쓰이고 있고, 대개 처음 62두 개는 A-Z, a-z, 0-9를 사용하고 있으며 마지막 두 개를 어떤 기호를 쓰느냐의 차이가 있다.<ref>민소네, 〈[http://a.to/19ZhhhT Base64 알고리즘]〉,《깃허브》, 2014-03-20 </ref> | Base 64라는 의미는 64진법이라는 의미이다. 화면에 표시되는 ASCII 문자들을 써서 표현할 수 있는 가장 큰 진법이기 때문인데, Base 64는 전자 메일을 통한 이진 데이터 전송에 많이 쓰이고 있고, 대개 처음 62두 개는 A-Z, a-z, 0-9를 사용하고 있으며 마지막 두 개를 어떤 기호를 쓰느냐의 차이가 있다.<ref>민소네, 〈[http://a.to/19ZhhhT Base64 알고리즘]〉,《깃허브》, 2014-03-20 </ref> | ||
− | |||
− | |||
'''Base64 Encoding''' | '''Base64 Encoding''' | ||
− | 데이터를 Base 64로 인코딩하는 방법은 24bit 버퍼에 위쪽(MSB)부터 한 바이트씩 세 바이트를 집어넣고, 남은 바이트가 3바이트 미만이라면, 버퍼의 남은 부분은 0으로 채워 넣게 된다. 그리고, 버퍼의 위쪽부터 6비트씩 잘라 그 값을 읽어, 다음에 정렬된 64개 "ABCDEFGHIJKLMNOPQRSTUVWXYZa+/"의 문자 중에서 읽은 값 번째 문자를 골라 출력한다. 만약 입력된 바이트가 하나라면 출력 중 두 개만이 사용되고 나머지 둘은 "="으로 패딩 되며, 입력된 바이트가 둘이라면 출력 중 세 개 많이 사용되고 나머지 하나는 "="으로 패딩 되게 된다. 이것은 원본으로 되돌릴 때 원본에는 없던 비트가 생기는 것을 방지하기 위해 서 이고 입력 데이터가 끝날 때까지 반복하면 인코딩이 된다.<ref>과일가게 개발자, 〈[https://fruitdev.tistory.com/79 Base64 암호화, 복호화 방법]〉,《티스토리》, 2014-09-08 </ref> | + | 데이터를 Base 64로 인코딩하는 방법은 24bit 버퍼에 위쪽(MSB)부터 한 바이트씩 세 바이트를 집어넣고, 남은 바이트가 3바이트 미만이라면, 버퍼의 남은 부분은 0으로 채워 넣게 된다. 그리고, 버퍼의 위쪽부터 6비트씩 잘라 그 값을 읽어, 다음에 정렬된 64개 "ABCDEFGHIJKLMNOPQRSTUVWXYZa+/"의 문자 중에서 읽은 값 번째 문자를 골라 출력한다. 만약 입력된 바이트가 하나라면 출력 중 두 개만이 사용되고 나머지 둘은 "="으로 패딩 되며, 입력된 바이트가 둘이라면 출력 중 세 개 많이 사용되고 나머지 하나는 "="으로 패딩 되게 된다. 이것은 원본으로 되돌릴 때 원본에는 없던 비트가 생기는 것을 방지하기 위해 서 이고 입력 데이터가 끝날 때까지 반복하면 인코딩이 된다.<ref>과일가게 개발자, 〈[https://fruitdev.tistory.com/79 Base64 암호화, 복호화 방법]〉,《티스토리》, 2014-09-08 </ref> |
* 2진 데이터를 ASCII 형태의 텍스트로 표현 가능하다. | * 2진 데이터를 ASCII 형태의 텍스트로 표현 가능하다. | ||
* Web 인증 중 기본인증에 사용한다. | * Web 인증 중 기본인증에 사용한다. |