간단하다.

 

원본자료를 6비트씩 끊어서 처리한 방식이다. 

 

예를 들면 

H 는 아스키 코드로 0x48 

C 는 아스키 코드로 0x43

Y 는 아스키 코드로 0x59

 

아스키코드는 16진수인데 이걸 2진수로 바꾸면 

8421 8421 두번 해서 

01001000 01000011 01011001

이걸 쭉 이어서 붙인다.

010010000100001101011001

이걸 6비트씩 끊는다. 

010010 000100 001101 011001

이런 원리로 한다고 생각하면 된다.

https://www.base64encode.org/

 

Base64 Encode and Decode - Online

Encode to Base64 format or decode from it with various advanced options. Our site has an easy to use online tool to convert your data.

www.base64encode.org

 

SENZCg==

이 사이트 가서 인코딩하면 이렇게 나옴 

 

Base64 인코딩은 그럼 왜 할까? 

 

6비트씩 묶어서 -> ASCII 문자로 다시 바꿔서(8bit)가 된다. 따라서 용량도 증가한다.

그런데도 왜 할까? 

 

바로 이진수로 되어있는 Bitstream 데이터를 무조건 몽땅 (영)문자로 바꿀 수 있다는게 핵심이다. 

왜 바꾸느냐? 

 

요새는 기본적으로 웹기반인데, 문제는 웹기술은 HTML 문서라고 하는 것은 기본적으로 아스키 코드로 되어있다! 

그런데, 아스키 코드로 표현할 수 없는 바이너리로 존재하는 데이터가 있다. 

작은 이미지 같은것 

 

이 이미지들을 HTML에 포함시키기 위해 Base64를 사용하는 것이다. 

 

웹페이지에 사람이 접속하고자 할때, 

HTML 문서(1K)+ 이미지(6K) 

VS 

HTML 문서(10K) 만 보낼때보다 효율이 더 좋다. 속도도 더 빠르고 용량도 더 효율적으로 활용할 수 있다. 

 

HTML, JSON도 모두 문자열로 데이터를 다루는데 

여기에 어쩔 수없이 바이너리 데이터를 삽입해야할때 Base64인코딩을 하면 굉장히 유리하기 때문에 사용한다. 

즉 효율적이라 사용하는 것이다. 

 

++ 추가 

6비트씩 자료를 자르면, 애매하게 자투리가 남는 경우가 있다. 

강제로 6비트로 늘리고, 빈 값을 Padding을 집어넣는다. 

그 Padding이== 이다. 

 


SENZCg== 
이런 것처럼 

 

디코딩할때는 Padding은 갖다버린다. 

 

직접 코딩할 일은 없다. 라이브러리도 있고 내장되어있다. 

 

 

 

'보안' 카테고리의 다른 글

암호화 vs 인코딩  (0) 2024.06.17
디스크 스케줄링 알고리즘  (0) 2024.06.17

https://www.youtube.com/watch?v=44oOQ6uY6aw

암호화와 인코딩의 차이가 무엇일까?

 

Base64 인코딩을 찾다가 발견했다. 

 

암호화와 인코딩은 둘 다 모양을 바꿔주는 것이다. 

abcd라는 문자를 이상한 문자로 바꿔주는게 암호화와 인코딩이다. 

 

두가지는 결정적인 차이가 있다. 바로 KEY! 

 

암호화는 암호화하기 암호 KEY를 이용한다. 다시 원상복구하기 위해 암호화 KEY가 필요하다

인코딩은 모양만 바꿔놓은 것이기 때문에 규칙만 알면 다시 바로 디코딩하여 원상복구를 시킬 수 있다. 

 

결론은 KEY가 있느냐 없느냐~! 

 

인코딩된 글자는 디코딩할 수 있다! 

 

Base64는 암호화 기법이 아닌 인코딩 기법이다. 

수준적, 질적 차이가 있기 때문에 명확한 구분이 필요하다~! 

 

'보안' 카테고리의 다른 글

Base64 인코딩, 디코딩, 원리, 사용하는 이유  (1) 2024.06.17
디스크 스케줄링 알고리즘  (0) 2024.06.17

+ Recent posts