일반 ASCII
- 입력
- hello world
- 결과
- aGVsbG8gd29ybGQ=
끝의 = 는 패딩이며 데이터의 일부가 아닙니다.
텍스트를 Base64로 바꾸고 되돌립니다. 한글 같은 비 ASCII 문자를 정확히 처리하고, JWT가 쓰는 URL-safe 알파벳을 지원하며, 결과가 텍스트가 아닌 바이너리일 때는 억지로 뭉개지 않고 그렇다고 알려줍니다.
전부 브라우저 안에서 처리됩니다. 이 페이지는 정적 파일입니다. 입력한 내용은 탭 안에만 머물고 서버로 전송되지 않으며 창을 닫으면 사라집니다. 실제 토큰이나 설정을 붙여넣어도 안전합니다.
kubectl get secret은 모든 값을 Base64로 보여줍니다.끝의 = 는 패딩이며 데이터의 일부가 아닙니다.
한글 한 글자가 UTF-8 3바이트가 됩니다. btoa() 를 그대로 쓰는 도구는 여기서 예외를 던집니다.
패딩도 없고 + 나 / 도 없어서 URL에 그대로 넣어도 깨지지 않습니다.
누구나 되돌릴 수 있는 인코딩일 뿐입니다. 쿠버네티스 Secret은 Base64로 인코딩된 것이지 보호된 것이 아닙니다. 위협 모델에서는 평문으로 취급해야 합니다.
JWT 조각은 - 와 _ 를 쓰고 패딩이 없습니다. 엄격한 표준 디코더는 이를 거부합니다. 알파벳을 바꾸고 길이를 4의 배수로 맞춘 뒤 디코딩해야 합니다.
echo "secret" | base64 는 끝의 줄바꿈까지 인코딩합니다. 값이 정확히 일치해야 한다면 echo -n 이나 printf 를 쓰세요.
Base64는 3바이트를 4글자로 표현하므로 약 33% 커지고 패딩이 더 붙습니다. 바이너리를 텍스트 전용 통로로 보내기 위해 치르는 비용입니다.
이 페이지는 정적 파일이고 변환은 탭 안의 자바스크립트에서 일어납니다. 전송되는 데이터가 없습니다. 입력하는 동안 브라우저 네트워크 탭을 열어두면 직접 확인할 수 있습니다.
인코딩은 printf '%s' 'text' | base64, 디코딩은 base64 -d 입니다. macOS에서는 디코딩 옵션이 -D 입니다. URL-safe가 필요하면 | tr '+/' '-_' | tr -d '=' 를 덧붙이세요.