GNU/Linux >> Linux Esercitazione >  >> Linux

Codifica in base32 dalla shell

Hmm, una rapida ricerca dei pacchetti non fornisce nulla di simile a un'unica utility autonoma.

D'altra parte, mostra che esiste una libreria Perl appropriata ed è abbastanza facile creare uno script Perl veloce. Qualcosa come:

$ 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";

Quindi:

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

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

Quindi, una piccola modifica ti consentirà anche di eseguire la decodifica.


Utilizzo di Python:

$ python
Python 2.7.14 (default, Sep 27 2017, 12:15:00) 
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.37)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import base64
>>> base64.b32encode('hello')
'NBSWY3DP'

Solo un miglioramento della risposta cjc eccellente in modo da poter avere un base32 utility 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";
}

Prova:

$ base32 < <(echo -n 'abcdef')
MFRGGZDFMY
$ base32 -d < <(echo  'MFRGGZDFMY')
abcdef

Linux
  1. Personalizzazione della shell Bash

  2. Precedenza degli operatori logici della shell &&, ||?

  3. Il modo migliore per annullare tutti i lavori Slurm dall'output del comando Shell?

  4. Il significato di $? In uno script di shell?

  5. Come posso determinare l'attuale utilizzo della CPU dalla shell?

Che cos'è la shell in Linux?

Il ciclo while negli script della shell

Utilizzando il comando passwd dall'interno di uno script di shell

adb:trova PID dalla shell adb

Esegui uno script di shell dal comando docker-compose, all'interno del contenitore

Come eseguire il comando Vim dalla shell?