GNU/Linux >> Tutoriales Linux >  >> Linux

Codificación a base32 desde el shell

Hmm, una búsqueda rápida de paquetes no ofrece nada parecido a una utilidad única e independiente.

Por otro lado, muestra que existe una biblioteca Perl apropiada y que es bastante fácil crear un script perl rápido. Algo como:

$ sudo apt-get install libmime-base32-perl

Y luego un script como 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";

Entonces:

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

La entrada de CPAN bastante escasa es:http://search.cpan.org/~danpeder/MIME-Base32-1.01/Base32.pm

Entonces, un cambio menor te permitirá hacer decodificaciones también.


Usando 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 una mejora de la excelente respuesta de cjc para que podamos tener un base32 utilidad que funciona de manera similar a base64 en la forma en que podemos codificar y decodificar:

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

Prueba:

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

Linux
  1. ¿El punto del comando externo `cd`?

  2. ¿Archivar historial sin salir de Shell?

  3. ¿La mejor manera de cancelar todos los trabajos de Slurm desde la salida del comando Shell?

  4. ¿El significado de $? ¿En un guión de Shell?

  5. Usando el comando passwd desde dentro de un script de shell

Poder (Shell) para la gente

¿Qué es el Shell en Linux?

El bucle while en los scripts de Shell

obtenga los primeros 5 caracteres de cada línea en el script de shell

¿Cómo ejecutar el comando Vim desde el shell?

¿Cómo comprobar si stdin es/dev/null desde el shell?