Base32 ์ธ์ฝ๋ฉ
100% ํด๋ผ์ด์ธํธ ์ธก ์ฒ๋ฆฌ (์๋ฒ ์ ๋ก๋ ์์). ์ ํ ๊ฐ๋ฅํ ์ํ๋ฒณ(RFC 4648/Base32hex/Crockford), ํจ๋ฉ ์ ์ด, ์ถ๋ ฅ ๋์๋ฌธ์, ๋ฌธ์์ ์ ํ(UTF-8 ๋ฑ), ์ ํ์ ์ค ๋ฐ๊ฟ, ์์ ์ ์ธ ํฌ๋งทํ ์ผ๋ก ํ ์คํธ๋ฅผ Base32๋ก ์ธ์ฝ๋ฉํฉ๋๋ค.
๊ธฐ๋ฅ
- ํ ์คํธ ์ ๋ ฅ์ Base32 ์ถ๋ ฅ์ผ๋ก ์ธ์ฝ๋ฉ (ํ ์คํธ โ Base32)
- Base32 ์ํ๋ฒณ: RFC 4648 (Base32), RFC 4648 (Base32hex), Crockford Base32
- ํจ๋ฉ(=) ๋ชจ๋: ์๋, ํญ์ ํฌํจ, ๋๋ ํจ๋ฉ ์๋ต
- ์ธ์ฝ๋ฉ ๋ชจ๋์์ ์ถ๋ ฅ ๋์๋ฌธ์ ์ ์ด: ๋๋ฌธ์ ๋๋ ์๋ฌธ์
- ํ ์คํธ โ ๋ฐ์ดํธ ๋ณํ์ ์ํ ๋ฌธ์์ ์ ํ (์ง์๋์ง ์๋ ๊ฐ์ UTF-8๋ก ๋์ฒด๋จ)
- 0โ120์ด์์ Base32 ์ค ๋ฐ๊ฟ (0์ ์ค ๋ฐ๊ฟ ๋นํ์ฑํ)
- ํฌ๋งทํ ์ ์ด: LF/CRLF ์ค ๊ตฌ๋ถ์ ๋ฐ ์ ํ์ ์ต์ข ์ค๋ฐ๊ฟ
- ์์ ์ ๋ ฅ์ ๋ํ ์ค์๊ฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ต์ (์ ๋ ฅ ์ค ์๋ ์ธ์ฝ๋ฉ)
- ๋๋กญ์กด์ ๋ค์ค ํ์ผ ํ ์คํธ ์ ๋ ฅ ์ง์ (๋ฐฐ์น ์ํฌํ๋ก์ฐ)
- 100% ํด๋ผ์ด์ธํธ ์ธก ์ฒ๋ฆฌ (์๋ฒ ์ ๋ก๋ ์์).
์ฌ์ฉ ๋ฐฉ๋ฒ for base32-encoder
ํ ์คํธ ๋ถ์ฌ๋ฃ๊ธฐ
ํ ์คํธ๋ฅผ ์ ๋ ฅ ํธ์ง๊ธฐ์ ๋ถ์ฌ๋ฃ๊ธฐ(๋๋ ๋๋กญ)ํ์ธ์. ๋๋กญ์กด์ ํตํด ์ผ๋ฐ ํ ์คํธ ํ์ผ ์ ํ์ ์ ๋ก๋ํ ์๋ ์์ต๋๋ค.
"์ธ์ฝ๋ฉ" ํด๋ฆญ
๋์์ "์ธ์ฝ๋ฉ"์ผ๋ก ์ค์ ํ ์ํ๋ก ์ ์งํ๊ณ , ํ์(RFC 4648/Base32hex/Crockford), ํจ๋ฉ, ๋์๋ฌธ์, ๋ฌธ์์ (๊ธฐ๋ณธ๊ฐ UTF-8)์ ์ ํํ์ธ์. ์ ํ์ ์ผ๋ก ์ค ๋ฐ๊ฟ ์์น ๋ฐ ์ค๋ฐ๊ฟ ์ค์ ์ ์ง์ ํ ์ ์์ต๋๋ค.
๋ณต์ฌ/๋ค์ด๋ก๋
์ถ๋ ฅ ํธ์ง๊ธฐ์์ Base32 ๊ฒฐ๊ณผ๋ฅผ ๋ณต์ฌํ๊ฑฐ๋, ๋๊ตฌ์ UI๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ด๋ก๋/๋ด๋ณด๋ด๊ธฐํ์ธ์.
๊ธฐ์ ์ฌ์
์คํ ๋ชจ๋ธ
์ด Base32 ํ ์คํธ ์ธ์ฝ๋๊ฐ ์คํ๋๋ ๋ฐฉ์๊ณผ ์ด ์ธ์ฝ๋ฉ ์ค์ฌ ํ์ด์ง์ ๋ํด ๋ณด์ฅํ๋ ์ฌํญ์ ๋๋ค.
| ์ธก๋ฉด | ์์ธ ๋ด์ฉ |
|---|---|
| ๋ฐํ์ | 100% ํด๋ผ์ด์ธํธ ์ธก ์ฒ๋ฆฌ (์๋ฒ ์ ๋ก๋ ์์). |
| ๋ณํ ๋ฒ์ | ์ธ์ฝ๋ฉ ์ ์ฉ (ํ ์คํธ โ Base32 ํ ์คํธ) |
| ์ ๋ ฅ | ํ ์คํธ ๋ฌธ์์ด |
| ์ถ๋ ฅ | Base32 ํ ์คํธ |
| ํ์ | RFC 4648 (Base32), RFC 4648 (Base32hex), Crockford Base32 |
| ๋ฌธ์ ์งํฉ ์ฒ๋ฆฌ | ์ฌ์ฉ์ ์ ํ ๊ฐ๋ฅ; ์ง์๋์ง ์๋ ๋ฌธ์ ์งํฉ ์ด๋ฆ์ UTF-8๋ก ๋์ฒด๋จ |
| ์ ํ | ~1โ2MB ๋ฌธ์; ~25000 ms ํ์์์ |
| ๋ณด์กด | ๋ชจ๋ ์ฒ๋ฆฌ๋ ๋ก์ปฌ ๋ธ๋ผ์ฐ์ ์์ ์ด๋ฃจ์ด์ง๋๋ค(์ ๋ก๋ ์์) |
๊ฐ๋จํ ์์
๋ด์ฅ ์ํ(์ธ์ฝ๋ฉ)์ ๋ํ ์์ ์ถ๋ ฅ์ ๋๋ค.
| ํ๋ | ๊ฐ |
|---|---|
| ์ ๋ ฅ | Hello World |
| ์ถ๋ ฅ (RFC 4648 Base32, ๊ธฐ๋ณธ ์ต์ ) | JBSWY3DPEBLW64TMMQ====== |
์ค๋ฅ ๋ฐ ์์ธ ์ํฉ
๋๊ตฌ์ ์ ์ฝ ์กฐ๊ฑด๊ณผ ์ต์ ์ ๋ง๋ ๋ฌธ์ ํด๊ฒฐ ์๋ด์ ๋๋ค.
| ์ฆ์ | ๊ฐ๋ฅํ ์์ธ | ํ์ธํ ์ฌํญ |
|---|---|---|
| ์ ๋ ฅ์ด ๋๋ฌด ํผ(์ต๋ 2MB) | ํ ์คํธ ์ ๋ ฅ์ด ํฌ๊ธฐ ์ ํ์ ์ด๊ณผํจ | ์ ๋ ฅ์ ์ค์ด๊ฑฐ๋ ๋ ์์ ๋ฉ์ด๋ฆฌ๋ก ๋ถํ ํ์ธ์ |
| ์ด๋ํฐ ํธ์ถ ์๊ฐ ์ด๊ณผ | ์ธ์ฝ๋ฉ์ด ~25000 ms๋ฅผ ์ด๊ณผํจ | ์ ๋ ฅ ํฌ๊ธฐ๋ฅผ ์ค์ด๊ณ ํฐ ์ ๋ ฅ์ ๋ํด ์ค์๊ฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋นํ์ฑํํ์ธ์ |
| ๋ค๋ฅธ Base32 ์ธ์ฝ๋์ ์ถ๋ ฅ์ด ๋ค๋ฆ | ๋ค๋ฅธ ์ํ๋ฒณ ๋๋ ํ์ ๊ท์น | ํ์(RFC 4648/Base32hex/Crockford), ํจ๋ฉ ๋ฐ ๋์๋ฌธ์๋ฅผ ์ผ์น์ํค์ธ์ |
| ์์์น ๋ชปํ ์ค ๋ฐ๊ฟ์ด ๋ํ๋จ | ์ค ๋ฐ๊ฟ ๋๋ ์ต์ข ์ค๋ฐ๊ฟ์ด ํ์ฑํ๋จ | ์ค ๋ฐ๊ฟ์ 0์ผ๋ก ์ค์ ํ๊ณ ์ต์ข ์ค๋ฐ๊ฟ/์ค ๊ตฌ๋ถ์ ์ฝ์ ์ ๊ฒํ ํ์ธ์ |
| ์ถ๋ ฅ์ ๋ค๋ฅธ ๊ณณ์์ ์ฌ์ฉํ ํ ์๋ชป๋ ๋ฌธ์๊ฐ ๋ํ๋จ | ์ ์คํธ๋ฆผ/๋ค์ด์คํธ๋ฆผ ๊ฐ ํ ์คํธ-๋ฐ์ดํธ ๋ฌธ์ ์งํฉ ๋ถ์ผ์น | ๋ฌธ์ ์งํฉ์ ๋ช ์์ ์ผ๋ก ์ค์ (๊ธฐ๋ณธ๊ฐ UTF-8)ํ๊ณ ๋ค๋ฅธ ์์คํ ๊ณผ ์ผ์น์ํต๋๋ค |
๋ช ๋ น์ค ๋์
๋ฐ๋ณต ๊ฐ๋ฅํ ๊ฒฐ๊ณผ, ์๋ํ ๋๋ ๋น๋ฐ ์ ๋ณด ์ฒ๋ฆฌ๋ฅผ ์ํด ํ์ค ๋ฐํ์/๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ก์ปฌ์์ Base32 ์ธ์ฝ๋ฉ์ ์คํํ์ธ์.
๋ชจ๋ ํ๋ซํผ (Python)
Python ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ UTF-8 ํ ์คํธ๋ฅผ Base32 (RFC 4648)๋ก ์ธ์ฝ๋ฉ
python -c "import base64,sys; s=sys.stdin.read(); sys.stdout.write(base64.b32encode(s.encode('utf-8')).decode('ascii'))" < input.txtํ ์คํธ๋ฅผ ์ฝ์ด UTF-8 ๋ฐ์ดํธ๋ก ์ธ์ฝ๋ฉํ ํ Base32๋ก ์ธ์ฝ๋ฉํฉ๋๋ค. UI์์ ๋ค๋ฅธ ๋ฌธ์ ์งํฉ์ ์ ํํ ๊ฒฝ์ฐ ์คํฌ๋ฆฝํธ์์๋ ๋์ผํ ์ธ์ฝ๋ฉ์ ๋ฐ์ํ์ธ์.
macOS / Linux (์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ)
์์คํ base32 ์ ํธ๋ฆฌํฐ๋ก ํ์ผ์ ๋ฐ์ดํธ๋ฅผ Base32๋ก ์ธ์ฝ๋ฉ
base32 < input.txt > output.b32.txt์ผ๋ถ ์์คํ ์๋ base32 ๋ช ๋ น์ด๊ฐ ํฌํจ๋์ด ์์ต๋๋ค(๋ณดํต GNU coreutils). ์ถ๋ ฅ ํ์์ ๊ตฌํ์ ๋ฐ๋ผ ๋ค๋ฅด๋ฏ๋ก ์ ํํ ์ ์ด๊ฐ ํ์ํ๋ฉด Python์ ์ฌ์ฉํ์ธ์.
์ฌ์ฉ ์ฌ๋ก
์ ํ๋ ์ฑ๋์ ํตํ ์ ์ก์ ์ํ ํ ์คํธ ์ธ์ฝ๋ฉ
- ์ ํ๋ ๋ฌธ์ ์งํฉ๋ง ํ์ฉํ๋ ์์คํ ์ ์ํด ๊ตฌ์ฑ ์ค๋ํซ์ด๋ ์๋ณ์๋ฅผ Base32๋ก ์ธ์ฝ๋ฉ
- ๋๊ตฌ ๊ฐ ๋ณต์ฌ/๋ถ์ฌ๋ฃ๊ธฐ ์ฌ์ด Base32 ๋ฌธ์์ด ์์ฑ
ํ ์ ์ฒด์์ ์ผ๊ด๋ Base32 ์ถ๋ ฅ
- ๋ถ์ผ์น๋ฅผ ํผํ๊ธฐ ์ํด RFC 4648 vs Base32hex vs Crockford ํ์คํ
- ๋ชจ๋ ์ฌ๋์ด ๋์ผํ Base32 ๋ฌธ์์ด์ ์์ฑํ๋๋ก ํจ๋ฉ ๋ชจ๋์ ๋์๋ฌธ์ ๊ณ ์
CI ํฝ์ค์ฒ ๋ฐ ๊ฒฐ์ ๋ก ์ ์ค๋ ์ท
- ๋ฌธ์ ์งํฉ, ํ์, ํจ๋ฉ์ ๊ณ ์ ํ์ฌ ์์ ์ ์ธ Base32 ํ ์คํธ ๋ฒกํฐ ์์ฑ
- LF ๊ฐ์ ๋ฐ ์ค๋ฐ๊ฟ ๋นํ์ฑํ๋ก ํ๋ซํผ๋ณ ์ค๋ฐ๊ฟ ์ฐจ์ด ๋ฐฉ์ง
์ฑ๋ฅ์ ๊ณ ๋ คํ ์ธ์ฝ๋ฉ
- ๋์ฉ๋ ์ ๋ ฅ ์ CPU ์ฌ์ฉ๋ ๊ฐ์๋ฅผ ์ํด ์ค์๊ฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋นํ์ฑํ
- ์ ๋ ฅ ํฌ๊ธฐ ์ ํ์ ๊ทผ์ ํ ๊ฒฝ์ฐ ์ฒญํฌ ๋จ์๋ก ์ธ์ฝ๋ฉ
โ Frequently Asked Questions
์ด Base32 ์ธ์ฝ๋์ ๊ณต๊ฐ API๊ฐ ์๋์?
API ์๋ํฌ์ธํธ๋ฅผ ์ ๊ณตํ์ง ์์ต๋๋ค.์ฒ๋ฆฌ๋ ๋ก์ปฌ์ธ๊ฐ์ ์๊ฒฉ์ธ๊ฐ์?
์ด ๋๊ตฌ๋ก ๋น๋ฐ ์ ๋ณด๋ฅผ ์ธ์ฝ๋ฉํ ์ ์๋์?
๋๊ตฌ๊ฐ ๋ด ์ ๋ ฅ์ ์ฒ๋ฆฌํ์ง ๋ชปํ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์(ํฌ๊ธฐ/์๊ฐ ์ด๊ณผ)?
๋ด Base32 ์ถ๋ ฅ์ด ๋ค๋ฅธ ์ธ์ฝ๋์ ์ผ์นํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
Pro Tips
์ํธ ์ด์ฉ์ฑ์ด ์ค์ํ๋ค๋ฉด, ํ์ + ํจ๋ฉ + ๋ฌธ์ ๋์๋ฌธ์๋ฅผ ๋ช ์์ ์ผ๋ก ์ค์ ํ์ฌ Base32๊ฐ ๋๊ตฌ ๊ฐ์ ์์ ์ ์ผ๋ก ์ ์ง๋๋๋ก ํ์ธ์.
๋นASCII ํ ์คํธ๋ฅผ ์ธ์ฝ๋ฉํ ๋ ๋ฌธ์ ์งํฉ(๊ธฐ๋ณธ๊ฐ UTF-8)์ ๊ณ ์ ํ์ธ์; ์ผ์นํ์ง ์๋ ์ธ์ฝ๋ฉ์ ์์์น ๋ชปํ ์ถ๋ ฅ์ ์ผ๋ฐ์ ์ธ ์์ธ์ ๋๋ค.
๋์ฉ๋ ํ์ด๋ก๋์ ๊ฒฝ์ฐ ์ค์๊ฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋นํ์ฑํํ๊ณ ์ค๋ฐ๊ฟ์ ํผํ์ฌ ์ฒ๋ฆฌ ์๊ฐ์ ์ค์ด๊ณ ํ์์์์ ๋ฐฉ์งํ์ธ์.
CI์์๋ ๋ก์ปฌ ์คํฌ๋ฆฝํธ(์: Python base64.b32encode)๋ฅผ ์ ํธํ๊ณ ์์ํ๋ ์ ํํ ์ค์ (๋ฌธ์ ์งํฉ, ํจ๋ฉ, ์ค ๋)์ ์ปค๋ฐํ์ธ์.
ํด๋ผ์ด์ธํธ ์ธก ์ฒ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋๋ผ๋ ๊ณต์ ์์คํ ์์ ๋น๋ฐ์ ์ ์คํ๊ฒ ๋ค๋ฃจ์ธ์; ๋ก์ปฌ ๋๊ตฌ๊ฐ ๊ฐ์ฅ ์์ ํ ๊ธฐ๋ณธ๊ฐ์ ๋๋ค.
Additional Resources
Other Tools
- CSS ์ ๋ฆฌ ๋๊ตฌ
- HTML ์ ๋ฆฌ ๋๊ตฌ
- ์๋ฐ์คํฌ๋ฆฝํธ ์ ๋ฆฌ ๋๊ตฌ
- PHP ์ ๋ฆฌ ๋๊ตฌ
- ์์ ์ ํ๊ธฐ
- ์คํ๋ผ์ดํธ ์ถ์ถ๊ธฐ
- Base32 ์ด์ง ์ธ์ฝ๋
- Base32 ๋์ฝ๋
- Base58 ์ด์ง ์ธ์ฝ๋
- Base58 ๋์ฝ๋
- Base58 ์ธ์ฝ๋
- Base62 ์ด์ง ์ธ์ฝ๋
- Base62 ๋์ฝ๋
- Base62 ์ธ์ฝ๋
- Base64 ์ด์ง ์ธ์ฝ๋
- Base64 ๋์ฝ๋
- Base64 ์ธ์ฝ๋
- 16์ง์ ์ด์ง ์ธ์ฝ๋
- 16์ง์ ๋์ฝ๋
- 16์ง์ ์ธ์ฝ๋
- C# ํฌ๋งทํฐ
- CSV ํฌ๋งทํฐ
- Dockerfile Formatter
- Elm ํฌ๋งทํฐ
- ENV ํฌ๋งทํฐ
- Go ํฌ๋งทํฐ
- GraphQL ํฌ๋งทํฐ
- HCL ํฌ๋งทํฐ
- INI ํฌ๋งทํฐ
- JSON ํฌ๋งทํฐ
- LaTeX ํฌ๋งทํฐ
- ๋งํฌ๋ค์ด ํฌ๋งทํฐ
- Objective-C ํฌ๋งทํฐ
- Php Formatter
- ํ๋กํ ์ฝ ๋ฒํผ ํฌ๋งทํฐ
- Python ํฌ๋งทํฐ
- Ruby ํฌ๋งทํฐ
- Rust ํฌ๋งทํฐ
- Scala ํฌ๋งทํฐ
- ์ ธ ์คํฌ๋ฆฝํธ ํฌ๋งทํฐ
- SQL ํฌ๋งทํฐ
- SVG ํฌ๋งทํฐ
- Swift ํฌ๋งทํฐ
- TOML ํฌ๋งทํฐ
- Typescript Formatter
- XML ํฌ๋งทํฐ
- YAML ํฌ๋งทํฐ
- Yarn ํฌ๋งทํฐ
- CSS ์์ถ๊ธฐ
- Html Minifier
- Javascript Minifier
- JSON ์์ถ๊ธฐ
- XML ์ต์ํ ๋๊ตฌ
- HTTP ํค๋ ๋ทฐ์ด
- PDF ํ ์คํธ ๋ณํ
- ์ ๊ท์ ํ ์คํฐ
- ๊ฒ์ ์์ ํ์ธ๊ธฐ
- Whois ์กฐํ