명령 및 padding 텍스트
tl;dr
mac 버전 base64에서padding 다음 문자열은 처리되지 않습니다.
파이프 같은 걸로 처리할 때 주의하는 게 좋을 것 같아요.
base64
이진법은 문자(a-zA-Z), 숫자(0-9), 몇 개의 기호(+/=)로 인코딩된 형식이다.JSON 등의 텍스트로 이미지와 같은 바이너리 데이터를 보내려는 경우 사용할 수 있습니다.
padding
base 64는 24비트당 4문자로 변환됩니다.입력이 부족하여 4글자가 될 수 없을 때 마지막으로 붙인 '=' 은padding입니다.
base 64 명령
Linux와 mac에서는 base 64 명령을 사용하여 base 64를 인코딩하고 디코딩할 수 있습니다.
특히 맥은 내장된 베이스 64 명령과 GNU 버전의 베이스 64 명령(gbase 64) 명령 두 가지 명령(※)을 사용할 수 있다.
용도와 기본 기능은 같지만 옵션과 행동은 조금 다르다.
※ coreutils 설치 필요
명령의 패딩 처리가 다르다
다음과 같은 차이가 있는 것 같습니다.
원시 데이터
베이스 64에서 ABCDEFG, hogehoge, hoge 세 줄을 인코딩한 파일입니다.
QUJDREVGRwo=
aG9nZWhvZ2UK
aG9nZQo=
GNU 버전 base 64(gbase 64)
cat buzz | gbase64 -d
ABCDEFG
hogehoge
hoge
mac 버전 base 64
ABCDEFG 행만 내보냅니다.
cat buzz | base64 -D
ABCDEFG
어떤 영향이 있습니까?
예컨대
비키다
순환하다
나는 가장 간단하고 통용된다고 생각한다.
#!/bin/bash
while read line
do
echo $line | base64 -D
done < buzz
./decode.sh
ABCDEFG
hogehoge
hoge
jq 명령
JSON에 포함된 base64를 디코딩할 때만 jq 명령 base64 인코딩/디코딩 을 삽입할 수 있습니다.
입력 데이터
cat buzz.json
[
"QUJDREVGRwo=",
"aG9nZWhvZ2UK",
"aG9nZQo="
]
cat buzz.json | jq ".[] | @base64d"
"ABCDEFG\n"
"hogehoge\n"
"hoge\n"
Reference
이 문제에 관하여(명령 및 padding 텍스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/notrogue/articles/979dcf34144f31텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)