GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Kodierung zu base32 von der Shell

Hmm, eine schnelle Paketsuche gibt nicht so etwas wie ein einzelnes, eigenständiges Dienstprogramm.

Andererseits zeigt es, dass es eine geeignete Perl-Bibliothek gibt, und es ist einfach genug, ein schnelles Perl-Skript zu erstellen. Etwas wie:

$ sudo apt-get install libmime-base32-perl

Und dann ein Skript wie 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";

Also:

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

Der ziemlich spärliche CPAN-Eintrag lautet:http://search.cpan.org/~danpeder/MIME-Base32-1.01/Base32.pm

Mit einer kleinen Änderung können Sie also auch decodieren.


Verwendung von 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'

Nur eine Verbesserung der ausgezeichneten Antwort von cjc, damit wir eine base32 haben können Dienstprogramm, das ähnlich wie base64 funktioniert wie wir kodieren und dekodieren können:

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

Prüfung:

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

Linux
  1. Anpassen der Bash-Shell

  2. Wie erkennt man, ob die Shell von ssh aus gesteuert wird?

  3. Verstehen Sie die Bedeutung von `$_`?

  4. Focusli – Spielen Sie Naturgeräusche aus der GNOME-Shell

  5. Wie kann ich die aktuelle CPU-Auslastung aus der Shell ermitteln?

Was ist die Shell unter Linux?

Die Bedeutung von $? In einem Shell-Skript?

Die While-Schleife in Shell-Skripten

Verwenden des passwd-Befehls innerhalb eines Shell-Skripts

Holen Sie sich die ersten 5 Zeichen aus jeder Zeile im Shell-Skript

Führen Sie ein Shell-Skript über den Befehl docker-compose im Container aus