Кодирование к base32 от оболочки

Проверьте продукт Elfiq, если у Вас есть шанс. Более простой и больше питания. Более умная входящая балансировка также - можно сделать QoS на входящем трафике.

9
задан 4 May 2012 в 23:53
5 ответов

Хм, быстрый поиск по пакету не дает ничего подобного отдельной автономной утилите.

С другой стороны, он показывает, что существует подходящая библиотека 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

Итак, небольшое изменение позволит вам также выполнять декодирование.

9
ответ дан 2 December 2019 в 22:29

Просто улучшение отличного ответа 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
2
ответ дан 2 December 2019 в 22:29
  1. Установить perl-MIME-Base32 .noarch :

     yum install perl-MIME-Base32.noarch
     
  2. Сохраните скрипт в файле bas32:

     #! / Usr / bin / perl
    
    используйте MIME :: Base32 qw (RFC);
    
    undef $ /;  # если в stdin есть символы новой строки
     $ ed = $ ARGV [0];
     $ строка = $ ARGV [1];
    если ($ ed eq "-e")
     {
     $ encoded = MIME :: Base32 :: encode ($ строка);
    печать "$ закодировано \ n";
     }
    elsif ($ ed eq "-d")
     {
     $ decoded = MIME :: Base32 :: decode ($ строка);
    print "$ decoded \ n";
     }
    else {print "пожалуйста, передайте также вариант \ n";
    Выход;
     }
    
    chmod + x base32
    cp base32 / usr / bin /
    base32 -e строка
    base32 -d "любое закодированное значение"
     
0
ответ дан 2 December 2019 в 22:29

Он установлен по умолчанию в Ubuntu 16. 04 в составе coreutils:

$ which base32
/usr/bin/base32
1
ответ дан 2 December 2019 в 22:29

Использование 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'
1
ответ дан 2 December 2019 в 22:29

Теги

Похожие вопросы