커맨드 라인을 통해 base64를 인코딩하는 방법은 무엇입니까? Mac OS X에

Mac OS X에 파일 또는 stdin을 base64로 인코딩하는 터미널 명령이 있습니까?



답변

openssl이 작업을 수행 할 수 있으며 기본적으로 OS X와 ​​함께 설치됩니다. darwinports를 설치할 필요가 없습니다.

$ openssl base64 -in <infile> -out <outfile>

-in옵션이 없으면 stdin에서 읽습니다.


답변

Openssl은 간결하게 사용할 수 있습니다.

echo -n 'input' | openssl base64

[echo -n->을 사용해야합니다. 그렇지 않으면 개행 문자를 포함하여 인코딩이 수행됩니다.]

또는

openssl base64 <ENTER> [type input] <CTRL+D>

답변

다음을 사용하십시오.

base64 -i <in-file> -o <outfile>

OS X에서 기본적으로 사용 가능해야합니다.


답변

base64 OS X 10.9.4에서 기본적으로 명령을 사용할 수 있습니다.

당신은 사용할 수 있습니다 base64 <<< stringbase64 -D <<< string인코딩 터미널에서 문자열을 디코딩하거나 base64 -in filebase64 -D -in file인코딩 파일을 디코딩 할 수 있습니다.


답변

Python은 기본적으로 OS X와 ​​함께 제공되므로 다음과 같이 사용할 수 있습니다.

$ echo FOO | python -m base64
Rk9PCg==
$ echo Rk9PCg== | python -m base64 -d
FOO

또는 Brew ( )를 coreutils통해 설치 하면 다음과 같은 명령 이 제공됩니다 .brew install coreutilsbase64

$ echo FOO | base64
Rk9PCg==
$ echo Rk9PCg== | base64 -d
FOO

답변

속도면에서 openssl, perl, uuencode를 사용합니다. 이식성 측면에서 uuencode와 Perl, openssl을 사용합니다 (가능한 경우 재고 플랫폼과 같은 다른 많은 UNIX에서 코드를 재사용하려는 경우). 모든 UNIX 변형이 -m 스위치를 지원하지는 않으므로주의하십시오 (iirc AIX, HP / UX, Solaris는 지원하지 않음).

$ time perl -MMIME::Base64 -e 'undef $/;while(<>){print encode_base64($_);}' \
> out.jpg 1>filename.b64
real    0m0.025s

$ time uuencode -m -o filename.b64 out.jpg filename_when_uudecoded.txt
real    0m0.051s

$  time openssl base64 -in out.jpg -out filename.b64
real    0m0.017s

에 의해 지정된 64 기수 당 file_in.txt uuencode로 인코딩하는 -m 스위치를 사용 RFC1521 과 (디코딩 할 때 기본 파일 이름으로 filename_when_uudecoded.txt로)가 filename.b64에 쓸 수 :

uuencode -m -o filename.b64 file_in.txt filename_when_uudecoded.txt

STDIN 예 :

cat file_in.txt | uuencode -m -o filename.b64 filename_when_uudecoded.txt

답변

클립 보드에 바로 파이프 할 수도 있습니다 (적어도 Mac에서는).

openssl base64 -in [filename] | pbcopy