ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • base64란?
    Security/Web 2018.09.05 20:09

    What is base64?

    base64는 말 그대로 64진법이라는 뜻을 가지고 있습니다. 

    8bit Binary Data(Ex.실행파일, zip파일 등)를 64개의 ASCII문자로 변환하는 Encoding방식입니다. 

    여기서 64개의 ASCII문자는 대문자 알파벳(A-Z)26개, 소문자 알파벳(a-z)26개, 숫자(0-9)10개, 두 가지의 기호. 즉, 총 64개를 말합니다.

    메일에서 첨부파일(Ex.이미지, 오디오 파일)를 전송하기 위해 사용 하는 등 여러 방면에서 활용되고 있습니다. 플랫폼에서 binary data를 전송하기 위해 사용한답니다!



    Let's do this!

    'base'라는 문자열을 base64로 인코딩해봅시다!


    ① 우선 문자열을 ASCII로 변환해줍니다.

     문자열

    b

     a

     s

     e

     ASCII

     98 

     97 

    115 

    101 


    ② 변환된 ASCII를 6bit씩 묶기 위해 binary로 변환해줍니다.

     ASCII

     98 

     97 

    115 

    101 

     binary

     01100010

    01100001

     01110011

     01100101


     변환된 binary를 6bit씩(64개의 문자를 사용하기 때문(=2^64)) 끊어줍니다.

    여기서 주의할점은 남는 비트 뒤에 0을 채워 6bit를 만들어 주어야 한다는 점!!

     binary 

     0

    index

     011000

    100110 

    000101 

    110011 

    011001 

    010000 


    ④ 6bit씩 끊어주었으면 이를 10진수로 변환합니다.

     index

     011000

    100110 

    000101 

    110011 

    011001 

    010000

     dec

     24

     38

     5

     51

     25

     16


    ⑤ 이 10진수를 base64 table을 참조하여 변환해줍니다.

    결과로 YmFzZQ가 나왔습니다

     dec

     24

     38

     5

     51

     25

     16

     base64

     Y

     Q


    ⑥ base64는 24bit 단위(3개 문자)로 인코딩이 이루어집니다. base를 24bit단위로 인코딩하려면 남은 bit수를 =로 맞춰줘야 합니다. 따라서 결과는 YmFzZQ==입니다~!

     

     24bit

     24bit

     binary 

     0

     0

    0 

    0 

    0 

    0 

    0 

    0 

     0

    0 

    0 

    0 

    0 

    0 

    0 

     base64

     Y

    = 

    = 


    끄읕^~^!

    'Security > Web' 카테고리의 다른 글

    CVE-2006-5178  (0) 2018.09.09
    php 파일업로드 에러코드 6  (0) 2018.09.07
    base64란?  (0) 2018.09.05
    URL Jumping  (0) 2018.07.29
    검증되지 않은 리다이렉트  (0) 2018.07.29
    pangolin 사용법  (0) 2018.07.29

    댓글 0

~ ^ . ^ ~