Codifica a base32 dalla shell

Sto cercando di codificare una string di input alla codifica di base32 direttamente dalla shell. Sto cercando di farlo in ubuntu, ma immagino che il sapore non abbia particolare importnza qui.

Ci sono strumenti esistenti linux / unix là fuori per fare semplicemente questo?

  • Come faccio ad avviare un nuovo registro degli errori apache?
  • Qual è la causa di VMWare esxi Ubuntu performance molto lente del disco (3MB / s)?
  • Imansible accedere al server Ubuntu dietro Huawei Router con l'inoltro della port
  • svuotare rapidamente una partizione Linux
  • Come posso determinare impostazioni specifiche del BIOS con i comandi dmidecode e lshw con i server HP?
  • Non è più in grado di submit e-mail dal server Ubuntu al gruppo Gmail
  • Qualcosa lungo le linee di:

    -bash-3.2$ echo -n 'hello' | base32 

  • C'è una ragione legittima di utilizzare una parola codificata in qualsiasi header diverso dall'object?
  • Come può la codifica UTF 8 in un field di varchar essere trasferiti in un field nvarchar?
  • Come posso distriggersre il trasferimento-codifica: chunked in Apache con risposte HTTP / 1.1
  • 3 Solutions collect form web for “Codifica a base32 dalla shell”

    Hmm, una ricerca rapida dei pacchetti non offre niente di simile a un'utilità singola e autonoma.

    D'altra parte, dimostra che c'è una biblioteca appropriata Perl, ed è abbastanza facile da frustare un rapido script perl. Qualcosa di simile a:

     $ sudo apt-get install libmime-base32-perl 

    E poi uno script come 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"; 

    Così:

     $ echo -n "hello" | ./base32enc.pl NBSWY3DP 

    La voce piuttosto scarsa di CPAN è: http://search.cpan.org/~danpeder/MIME-Base32-1.01/Base32.pm

    Quindi, un cambiamento minore vi farà decodificare anche.

    Solo un miglioramento della risposta eccellente di cjc in modo da poter avere un'utilità base32 che funziona in modo simile a base64 nel modo in cui possiamo codificare e decodificare:

     #! /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"; } 

    Test:

     $ base32 < <(echo -n 'abcdef') MFRGGZDFMY $ base32 -d < <(echo 'MFRGGZDFMY') abcdef 
    1. Installare perl-MIME-Base32.noarch :

       yum install perl-MIME-Base32.noarch 
    2. Salvare lo script nel nome di file 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" 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.