# ๊ฐœ์š”
์ด์ง„ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋„๋ฆฌ ์“ฐ์ด๋Š” ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹ `base64`์™€ `base64url`์˜ ๋™์ž‘์›๋ฆฌ๋ฅผ ์„ค๋ช…ํ•œ๋‹ค.

# ์ง„๋ฒ• ์ฒด๊ณ„์— ๋”ฐ๋ฅธ ์ด์ง„ ์ •๋ณด ํ‘œํ˜„์˜ ์ฐจ์ด

์ปดํ“จํ„ฐ๋Š” ๋ชจ๋“  ์ •๋ณด๋ฅผ 0๊ณผ 1๋กœ ๊ตฌ์„ฑ๋œ ์ด์ง„ ์ •๋ณด๋กœ ๊ธฐ์–ตํ•˜๊ณ , ์ด์ง„๋ฒ• (base-2) ์ฒด๊ณ„ ํ•˜์— ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ, ์ด์ง„ ์ •๋ณด ํ‘œํ˜„์„ ์œ„ํ•œ ๋ฌธ์ž์˜ ๊ฐ€์ง“์ˆ˜๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก, ํ‘œํ˜„๋˜๋Š” ์ •๋ณด์˜ ๋ฐ€์ง‘์„ฑ์ด ๋†’์•„์ง„๋‹ค. 

8์ง„๋ฒ•๊ณผ 16์ง„๋ฒ•์„ ํ†ตํ•œ ์ด์ง„ ์ •๋ณด ํ‘œํ˜„์„ ํ†ตํ•ด ์ด ์‚ฌ์‹ค์„ ์ดํ•ดํ•ด๋ณด์ž.

- 1๋น„ํŠธ์”ฉ ๊ทธ๋Œ€๋กœ ํ‘œํ˜„ํ•˜๋Š” 2์ง„๋ฒ• (base-2)๋Š” 0๊ณผ 1 (2๊ฐ€์ง€ ๋ฌธ์ž)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
- 2๋น„ํŠธ์”ฉ ๋ชจ์•„์„œ ํ‘œํ˜„ํ•˜๋Š” 8์ง„๋ฒ• (base-8)์€ 0~7 (8๊ฐ€์ง€ ๋ฌธ์ž)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 
- 4๋น„ํŠธ์”ฉ ๋ชจ์•„์„œ ํ‘œํ˜„ํ•˜๋Š” 16์ง„๋ฒ• (base-16)์€ 0~9, A~F (16๊ฐ€์ง€ ๋ฌธ์ž)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๋˜‘๊ฐ™์€ ์ด์ง„ ์ •๋ณด๋ฅผ 2์ง„๋ฒ•, 8์ง„๋ฒ• ๊ทธ๋ฆฌ๊ณ  16์ง„๋ฒ•์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

```
base-2:  0101000010100100
base-8:  50244
base-16: 50a4
```

์…‹ ์ค‘์—์„œ๋Š” 16์ง„๋ฒ•์ด ์ฝ๊ธฐ์—๋„ ๋น ๋ฅด๊ณ  ๊ธฐ์–ตํ•˜๊ธฐ ์‰ฌ์šธ ๊ฒƒ์ด๋‹ค.

# 64์ง„๋ฒ• ๊ธฐ๋ฐ˜ ํ‘œํ˜„ ์ฒด๊ณ„ base64

**`base64`๋Š” 64๊ฐ€์ง€ ๋ฌธ์ž๋ฅผ ํ†ตํ•ด ์ด์ง„ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜์—ฌ ๋ฐ€์ง‘์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๋ฉด์„œ๋„, ์ธํ„ฐ๋„ท์ƒ์—์„œ ์‰ฝ๊ฒŒ ์ „๋‹ฌ๋  ์ˆ˜ ์žˆ๋„๋ก ๊ณ ์•ˆ๋œ 64์ง„๋ฒ• (base-64) ํ‘œํ˜„ ์ฒด๊ณ„์ด๋‹ค.** 

์‚ฌ์šฉ๋˜๋Š” ๋ฌธ์ž: `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/` ๋ฐ ํŒจ๋”ฉ ๋ฌธ์ž `=`

๊ตญ์ œ ์ธํ„ฐ๋„ท ํ‘œ์ค€ํ™” ๊ธฐ๊ตฌ(IETF)์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ํ‘œ์ค€ ์ค‘ ํ•˜๋‚˜์ธ [RFC 4648](https://tools.ietf.org/html/rfc4648#section-5)์—์„œ๋Š” ์ธํ„ฐ๋„ท์ƒ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ง„๋ฒ• ์ฒด๊ณ„๋ฅผ ์ •์˜ํ•˜๋Š”๋ฐ, base64๊ฐ€ ๊ทธ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. base64์— ์“ฐ์ด๋Š” ๋ฌธ์ž๋“ค์€ ๋ชจ๋‘ ASCII ๋ฌธ์ž๋“ค์ธ๋ฐ, ์ด๋Š” base64๋กœ ์ธ์ฝ”๋”ฉ๋œ ํ…์ŠคํŠธ๋ฅผ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์— ํ‘œ์‹œํ•  ๋•Œ ๋™์ผํ•œ ๋ฌธ์ž์™€ ๋‚ด์šฉ์ด ํ‘œ์‹œ๋˜๋„๋ก ๋ณด์žฅํ•ด์ค€๋‹ค. ๋˜ํ•œ, ASCII ๋ฌธ์ž๋“ค์€ ํ‚ค๋ณด๋“œ๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์ž…๋ ฅ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ๋žŒ์ด ์ง์ ‘ ๋‹ค๋ฃจ๊ธฐ ์šฉ์ดํ•˜๋‹ค. ์ด๋Ÿฐ ์žฅ์ ๋“ค ๋•๋ถ„์—, base64๋Š” ๋„คํŠธ์›Œํฌ์ƒ์—์„œ์˜ ์ด์ง„ ์ •๋ณด ์ „์†ก์„ ์œ„ํ•œ ์ธ์ฝ”๋”ฉ์œผ๋กœ์จ ํญ๋„“๊ฒŒ ์“ฐ์ด๊ณ  ์žˆ๋‹ค.

base64๋Š” ์˜ฅํ…Ÿ(8๋น„ํŠธ)์œผ๋กœ๋งŒ ๋ชจ์ธ ์ด์ง„ ์ •๋ณด๋ฅผ ์œ„ํ•ด ๊ณ ์•ˆ๋˜์—ˆ๋‹ค. base64๋Š” ์ด ์˜ฅํ…Ÿ ๋ฐ์ดํ„ฐ๋“ค์„ 6๋น„ํŠธ์”ฉ ์ชผ๊ฐœ์–ด base64 ๋ฌธ์ž์— ๋Œ€์ž…์‹œ์ผœ ํ‘œํ˜„ํ•œ๋‹ค. ์ด๊ฒƒ์ด base64 ์ธ์ฝ”๋“œ์˜ ํ•ต์‹ฌ ์›๋ฆฌ์ด๋‹ค. 


# base64์˜ ํŒŒ์ƒ ํ‘œํ˜„ ์ฒด๊ณ„ base64url

**base64์˜ ์›๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” base64url์€ ์ธ์ฝ”๋”ฉ๋œ ๋ฌธ์ž์—ด์ด URL ์•ˆ์—์„œ๋„ ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ํ‘œํ˜„๋  ์ˆ˜ ์žˆ๋„๋ก ๊ฐœ์„ ๋œ ์ง„๋ฒ• ์ฒด๊ณ„์ด๋‹ค.** 

์‚ฌ์šฉ๋˜๋Š” ๋ฌธ์ž: `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_` ๋ฐ ํŒจ๋”ฉ ๋ฌธ์ž `=`

base64์˜ +, /, = ๋ฌธ์ž๋Š” [RFC 3986๋ฅผ ํ†ตํ•ด ์ •์˜๋˜๋Š” URL ์˜ˆ์•ฝ ๋ฌธ์ž๋“ค](https://en.wikipedia.org/wiki/Percent-encoding)์ด๋ผ์„œ, URL์— ์‚ฌ์šฉํ•  ๋•Œ์—๋Š” ๋ฐ”๋กœ ๋„ฃ์œผ๋ฉด ์•ˆ๋˜๊ณ  "%2B", "%2F", "%3D"๋กœ ๊ฐ๊ฐ ๋ฏธ๋ฆฌ ๋ณ€ํ™˜ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  base64๋Š” ๋ฌธ์ž์—ด์„ ์ธ์ฝ”๋”ฉํ•  ๋•Œ ํŒจ๋”ฉ์ด ๋ฐœ์ƒํ•˜์˜€๋‹ค๋ฉด, ํŒจ๋”ฉ ๋ฌธ์ž("=")๋ฅผ ๋ˆ„๋ฝํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค.

์ด๋Ÿฌํ•œ base64์˜ ๋‹จ์ ๋“ค์„ ๊ฐœ์„ ํ•˜์—ฌ, base64url์€ URL ์˜ˆ์•ฝ ๋ฌธ์ž๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋˜ํ•œ ํŒจ๋”ฉ ๋ฌธ์ž("=") ๋ˆ„๋ฝ์„ ํ—ˆ์šฉํ•œ๋‹ค. 

์›๋ฌธ ํ…์ŠคํŠธ์™€ base64, base64url์˜ ์ธ์ฝ”๋”ฉ ๊ฒฐ๊ณผ๋ฌผ์„ ๋น„๊ตํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

```
์›๋ฌธ:       ์•ˆ๋…•ํ•˜์„ธ์š”. Lorem Ipsum 99 ๐Ÿ“™๐Ÿ“™๐Ÿ“™
base64:    7JWI64WV7ZWY7IS47JqULiBMb3JlbSBJcHN1bSA5OSDwn5OZ8J+TmfCfk5k=
base64url: 7JWI64WV7ZWY7IS47JqULiBMb3JlbSBJcHN1bSA5OSDwn5OZ8J-TmfCfk5k
```

์ด์ฒ˜๋Ÿผ, base64url๋Š” base64์™€ ์œ ์‚ฌํ•˜๋ฉด์„œ๋„ ๋” ๋งŽ์€ ํ™˜๊ฒฝ์— ํ˜ธํ™˜๋  ์ˆ˜ ์žˆ๋Š” ์ธ์ฝ”๋”ฉ์ด๋‹ค. base64url ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์€ base64์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ [RFC 4648](https://tools.ietf.org/html/rfc4648#section-5) ํ‘œ์ค€์—์„œ ์ •์˜๋œ๋‹ค. 

## base64 ์ธ์ฝ”๋“œ ์ ˆ์ฐจ

base64๋Š” ์˜ฅํ…Ÿ(8๋น„ํŠธ) ๋ฐ์ดํ„ฐ๋“ค์„ 6๋น„ํŠธ์”ฉ ์ชผ๊ฐ  ํ›„ base64 ๋ฌธ์ž์— ๋Œ€์ž…์‹œ์ผœ ํ‘œํ˜„ํ•œ๋‹ค๊ณ  ์•ž์„œ ์„ค๋ช…ํ–ˆ๋‹ค. 

์˜ˆ์‹œ๋กœ, 2์˜ฅํ…Ÿ(16๋น„ํŠธ) ์ •๋ณด๋ฅผ base64๋กœ ์ธ์ฝ”๋“œํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. 

์ด 16๊ฐœ์˜ ๋น„ํŠธ๋ฅผ 6๋น„ํŠธ์”ฉ์œผ๋กœ ์ชผ๊ฐœ๋ฉด, ๋‚จ๊ฒจ์ง€๋Š” 4๋น„ํŠธ๊ฐ€ ์ƒ๊ธธ ๊ฒƒ์ด๋‹ค. 6๋น„ํŠธ ๊ธธ์ด๋ณด๋‹ค ๋ชจ์ž๋ž€ ๋น„ํŠธ์ˆ˜๋งŒํผ "0" ๋น„ํŠธ๋ฅผ ์ž„์˜๋กœ ์˜ค๋ฅธ์ชฝ์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค. 2๊ฐœ์˜ "0" ๋น„ํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด 6์˜ ๋ฐฐ์ˆ˜์ธ 18๋น„ํŠธ ๊ธธ์ด๊ฐ€ ์ด์กฑ๋  ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ณผ์ •์„ ํŒจ๋”ฉ("Padding")์ด๋ผ๊ณ  ํ•œ๋‹ค. 

6๋น„ํŠธ๋กœ ๋ชจ์ธ ์ด์ง„ ์ •๋ณด๋“ค์€ base64 ๋ฌธ์ž๋กœ ์น˜ํ™˜๋œ๋‹ค.

```
 Value Encoding  Value Encoding  Value Encoding  Value Encoding
         0 A            17 R            34 i            51 z
         1 B            18 S            35 j            52 0
         2 C            19 T            36 k            53 1
         3 D            20 U            37 l            54 2
         4 E            21 V            38 m            55 3
         5 F            22 W            39 n            56 4
         6 G            23 X            40 o            57 5
         7 H            24 Y            41 p            58 6
         8 I            25 Z            42 q            59 7
         9 J            26 a            43 r            60 8
        10 K            27 b            44 s            61 9
        11 L            28 c            45 t            62 +
        12 M            29 d            46 u            63 /
        13 N            30 e            47 v
        14 O            31 f            48 w         (pad) =
        15 P            32 g            49 x
        16 Q            33 h            50 y
```

์œ„ ํ‘œ๋Š” base64 ๋ณ€ํ™˜ํ‘œ๋ฅผ 10์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 6๋น„ํŠธ๋กœ ์ชผ๊ฐœ์ง„ ๊ฐ’์ด 10์ง„์ˆ˜ 0์ด๋ฉด "A", 10์ง„์ˆ˜ 63์ด๋ฉด "/".

๋น„ํŠธ์— ๋Œ€ํ•œ ๋ฌธ์ž์—ด ์น˜ํ™˜์ด ๋๋‚˜๋ฉด, ํŒจ๋”ฉ ๊ณผ์ •์—์„œ ์ถ”๊ฐ€๋œ ๋น„ํŠธ๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ ๋ช…์‹œํ•˜๋Š” ํŒจ๋”ฉ ๋ฌธ์ž "="๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. ํŒจ๋”ฉ์œผ๋กœ ์ถ”๊ฐ€๋œ "0" ๋น„ํŠธ ๊ฐœ์ˆ˜๊ฐ€ 2๊ฐœ๋ฉด "=", 4๊ฐœ๋ฉด "=="๋ฅผ ๋ฌธ์ž์—ด ์˜ค๋ฅธ์ชฝ ๋์— ๋ถ™์—ฌ ์ธ์ฝ”๋“œ๋ฅผ ๋๋‚ธ๋‹ค.

## base64 ๋””์ฝ”๋“œ ์ ˆ์ฐจ

๋””์ฝ”๋“œ์—์„œ๋Š” ์ธ์ฝ”๋“œ์˜ ๋ฐ˜๋Œ€๋กœ, 6๋น„ํŠธ๋กœ ์ชผ๊ฐฐ๋˜ ์ด์ง„ ์ •๋ณด๋ฅผ ๋‹ค์‹œ ์˜ฅํ…Ÿ(8๋น„ํŠธ) ๋ฐ์ดํ„ฐ๋“ค๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

๋จผ์ €, base64๋กœ ์ธ์ฝ”๋“œ๋œ ๋ฌธ์ž์—ด์—์„œ "="๋ฅผ ์ œ์™ธ์‹œํ‚จ ํ›„, base64 ๋ฌธ์ž๋ฅผ ์ด์ง„ ์ •๋ณด๋กœ ์น˜ํ™˜ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด์ง„ ์ •๋ณด์˜ ๋น„ํŠธ ๊ธธ์ด๊ฐ€ 8์˜ ๋ฐฐ์ˆ˜์ด๋„๋ก ์˜ค๋ฅธ์ชฝ ๋น„ํŠธ๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๋””์ฝ”๋“œ๋ฅผ ์™„๋ฃŒํ•œ๋‹ค. ์•ž์„  ์˜ˆ์‹œ์—์„œ๋Š” 2์˜ฅํ…Ÿ(16๋น„ํŠธ) ์›๋ณธ ๋ฐ์ดํ„ฐ์— "0" 2๋น„ํŠธ๋ฅผ ํŒจ๋”ฉ์œผ๋กœ ์ถ”๊ฐ€ํ–ˆ์œผ๋ฏ€๋กœ ์ด 18๋น„ํŠธ์ผ ๊ฒƒ์ด๋‹ค. 18๋น„ํŠธ๋ฅผ 8์˜ ๋ฐฐ์ˆ˜์ด๋„๋ก ๊ธธ์ด๋ฅผ ๋งž์ถ”๊ธฐ ์œ„ํ•ด ์˜ค๋ฅธ์ชฝ์˜ 2๋น„ํŠธ๋ฅผ ๋ฒ„๋ฆฌ๋ฉด, ์›๋ณธ ์ด์ง„ ์ •๋ณด์™€ ๋™์ผํ•œ 2์˜ฅํ…Ÿ(16๋น„ํŠธ)์ด ๋„์ถœ๋œ๋‹ค. 

## ํŒจ๋”ฉ์˜ ์—ญํ• 

base64 ์ธ์ฝ”๋”ฉ์€ ์˜ฅํ…Ÿ(8๋น„ํŠธ)๋“ค์„ 6๋น„ํŠธ์”ฉ ๋‚˜๋ˆ„๊ฒŒ ๋œ๋‹ค. ๋งŒ์•ฝ ์ด์ง„ ์ •๋ณด์˜ ๋น„ํŠธ ๊ธธ์ด๊ฐ€ 24๋น„ํŠธ๋‚˜ 96๋น„ํŠธ์™€ ๊ฐ™์ด 6๊ณผ 8์˜ ๊ณต๋ฐฐ์ˆ˜๋ผ๋ฉด ํŒจ๋”ฉ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ ์™ธ์— ๊ฒฝ์šฐ์—๋Š” 6๋น„ํŠธ ๊ธธ์ด๋ฅผ ๋งž์ถ”๊ธฐ ์œ„ํ•œ ํŒจ๋”ฉ์ด ์ถ”๊ฐ€๋œ๋‹ค. ์ด๋Ÿฌํ•œ ์ธ์ฝ”๋“œ ๋ฐ ๋””์ฝ”๋“œ ๊ณผ์ • ์†์—์„œ ๋น„ํŠธ "0"๋Š” ๋น„ํŠธ ๊ธธ์ด๋ฅผ ๋งž์ถ”๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€๋˜๋ฉฐ, ์ธ์ฝ”๋”ฉ๋œ ๋ฌธ์ž์—ด์— ๋ถ™๋Š” "="๋Š” "0" ๋น„ํŠธ๊ฐ€ ์ถ”๊ฐ€๋œ ํšŸ์ˆ˜์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

ํ•œํŽธ, "="์˜ ๊ฐœ์ˆ˜๋ฅผ ํ†ตํ•ด ์ด์ง„ ์ •๋ณด์— ๋ช‡ ๊ฐœ์˜ "0" ํŒจ๋”ฉ ๋น„ํŠธ๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ์—ญ์œผ๋กœ ํŒŒ์•…ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ฆ‰, ์ธ์ฝ”๋”ฉ๋œ ๋ฌธ์ž์—ด์˜ ์ด์ง„ ์ •๋ณด๊ฐ€ "=" ๊ฐœ์ˆ˜์™€ ์ƒ์ถฉ๋˜๋Š”์ง€ ๊ฒ€์ฆํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด์— ๋Œ€ํ•ด์„œ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ณ„ base64 ๋””์ฝ”๋” ๊ตฌํ˜„์ฒด๋งˆ๋‹ค ๊ฒ€์ฆ ์—ฌ๋ถ€๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ์ƒํ™ฉ์ด๋‹ค. ๋งŒ์•ฝ ํŒจ๋”ฉ์„ ์™„์ „ํžˆ ๋ฌด์‹œํ•œ ์ฑ„๋กœ ๋””์ฝ”๋“œํ•˜๋ฉด, '์ธ์ฝ”๋“œ๋œ ๋ฌธ์ž์—ด์€ ๋‹ค๋ฅด์ง€๋งŒ ๋””์ฝ”๋“œ๋˜์—ˆ์„ ๋•Œ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ™๋„๋ก' ์•…์˜์ ์œผ๋กœ ์ œ์ž‘๋œ base64 ๋ฌธ์ž์—ด์„ ํ—ˆ์šฉํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋Š” ์ž ์žฌ์ ์ธ ๋ณด์•ˆ ์œ„ํ˜‘์œผ๋กœ ์ด์–ด์งˆ ์ˆ˜๋„ ์žˆ๋‹ค [1]. 

๋”ฐ๋ผ์„œ, base64๋กœ ์ธ์ฝ”๋“œ๋œ ๋ฌธ์ž์—ด์— ๋Œ€ํ•ด ์—„๊ฒฉํ•œ ๋น„๊ต๋ฅผ ์‹ค์‹œํ•˜๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค๋ฉด, ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ์ธ์ฝ”๋”ฉ ๋ฌธ์ž์—ด ์ž์ฒด์— ๋Œ€ํ•œ ๊ฒ€์ฆ์ด ๋ฐ˜๋“œ์‹œ ํ•จ๊ป˜ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•œ๋‹ค. ๋‹ค๋งŒ ์ธ์ฝ”๋“œ๋œ ๋ฌธ์ž์—ด์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ๋น„๊ต ๋กœ์ง์ด ์—†๋Š” ๋™์‹œ์— ๋””์ฝ”๋“œ๋œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ๋งŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค๋ฉด, ํŒจ๋”ฉ์„ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ์ด ํ•„์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

# ๊ฒฐ๋ก 

base64์™€ base64url์€ ๋ชจ๋‘ IETF ์ธํ„ฐ๋„ท ํ‘œ์ค€์„ ํ†ตํ•ด ์ •์˜๋˜๋Š” ์ธ์ฝ”๋”ฉ์ด๋‹ค. ๋‘ ์ธ์ฝ”๋”ฉ์˜ ์ฐจ์ด์ ๊ณผ ๋™์ž‘์›๋ฆฌ๋ฅผ ์ดํ•ดํ•œ๋‹ค๋ฉด, ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ์ธ์ฝ”๋”ฉ์„ ์„ ํƒํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ด๋‹ค.

# Reference

[1] [Konstantinos Chalkias and Panagiotis Chatzigiannis. 2022. Base64 Malleability in Practice.](https://eprint.iacr.org/2022/361.pdf) In Proceedings of the 2022 ACM on Asia Conference on Computer and Communications Security (ASIA CCS '22). Association for Computing Machinery, New York, NY, USA, 1219โ€“1221. [https://doi.org/10.1145/3488932.3527284](https://doi.org/10.1145/3488932.3527284)

RFC 4648 [Simon Josefsson. 2006. The Base16, Base32, and Base64 Data Encodings](https://tools.ietf.org/html/rfc4648#section-5) [https://doi.org/10.17487/RFC4648](https://doi.org/10.17487/RFC4648)