답변:
흠, 빠른 패키지 검색은 하나의 독립형 유틸리티와 같은 것을 제공하지 않습니다.
반면, 적절한 Perl 라이브러리가 있으며 빠른 perl 스크립트를 작성하기가 쉽습니다. 다음과 같은 것 :
$ sudo apt-get install libmime-base32-perl
그리고 다음과 같은 스크립트가 있습니다 base32enc.pl
:
#!/usr/bin/perl
use MIME::Base32 qw( RFC );
undef $/; # in case stdin has newlines
$string = <STDIN>;
$encoded = MIME::Base32::encode($string);
print "$encoded\n";
그래서:
$ echo -n "hello" | ./base32enc.pl
NBSWY3DP
상당히 드문 CPAN 항목은 다음과 같습니다. http://search.cpan.org/~danpeder/MIME-Base32-1.01/Base32.pm
따라서 약간의 변경만으로도 디코딩을 수행 할 수 있습니다.
cjc 우수 답변의 개선 사항으로 인코딩 및 디코딩 방식 base32
과 유사한 유틸리티를 사용할 base64
수 있습니다.
#! /usr/bin/perl
use MIME::Base32;
use strict;
undef $/;
my $string = <STDIN>;
my $changed;
if ( $ARGV[0] eq "-d" ){
$changed = MIME::Base32::decode($string);
}else{
$changed = MIME::Base32::encode($string);
}
if ( $changed =~ /\n$/ ) {
printf $changed;
}else{
printf $changed . "\n";
}
테스트:
$ base32 < <(echo -n 'abcdef')
MFRGGZDFMY
$ base32 -d < <(echo 'MFRGGZDFMY')
abcdef
기본적으로 Ubuntu 16.04에 coreutils의 일부로 설치됩니다 .
$ which base32
/usr/bin/base32
설치 perl-MIME-Base32.noarch
:
yum install perl-MIME-Base32.noarch
스크립트를 bas32 파일 이름으로 저장하십시오.
#!/usr/bin/perl
use MIME::Base32 qw( RFC );
undef $/; # in case stdin has newlines
$ed=$ARGV[0];
$string=$ARGV[1];
if ($ed eq "-e")
{
$encoded = MIME::Base32::encode($string);
print "$encoded\n";
}
elsif ($ed eq "-d")
{
$decoded = MIME::Base32::decode($string);
print "$decoded\n";
}
else { print " please pass option also\n";
exit;
}
chmod +x base32
cp base32 /usr/bin/
base32 -e string
base32 -d "any encoded value"