Perl: Encriptar y desencriptar base64 con MIME::Base64

El módulo de Perl MIME::Base64 proporciona funciones para codificar y descodificar cadenas en y desde base64.

Base 64 es un sistema de numeración posicional que usa 64 como base. Es la mayor potencia de dos que puede ser representada usando únicamente los caracteres imprimibles de ASCII. Esto ha propiciado su uso para codificación de correos electrónicos, PGP y otras aplicaciones. Todas las variantes famosas que se conocen con el nombre de Base64 usan el rango de caracteres A-Z, a-z y 0-9 en este orden para los primeros 62 dígitos, pero los símbolos escogidos para los últimos dos dígitos varían considerablemente de unas a otras. Wikipedia

Las funciones que nos ofrece son las siguientes:

encode_base64($str);
encode_base64($str, $eol);
decode_base64($str);

Os dejo un par de ejemplos muy sencillos, podéis encontrar más en cPan.org.

Decodificación:


#!/usr/bin/perl
use warnings;
use strict;
use MIME::Base64;

my $string_codificada = "RXN0byBlcyB1bmEgcHJ1ZWJh";
my $string = decode_base64($codificado);
print "String ($string_codificada) decodificada:\n ".$string;

Codificación:


#!/usr/bin/perl
use warnings;
use strict;
use MIME::Base64;

my $string = 'Esto es una prueba';
my $string_codificada = encode_base64($string);
print "String ($string) codificada:\n".$string_codificada;

9 comentarios en “Perl: Encriptar y desencriptar base64 con MIME::Base64

  1. como desencriptar texto de archivos .bin = ÿ©≠#⅔@Eј¥ÿ por texto legible = hola como estas hay alguna manera gracias

    • A la técnica para desencriptar archivos con extensíón .bin ó .exe ó .com se llama «Ingeniería Inversa» y creo yo todavía esta en pañales, pero ya existe

  2. Este no es Encriptar, es Codificar, que no es lo mismo.

    Por ejemplo puedo Codificar un imagen JPG o archivo PDF (archivos binarios) en Base64, y se transforma en un montón de caracteres ASCII y se envía por XML, por FTP, etc… Al otro lado lo decodifico y obtengo nuevamente la imagen JPG o el archio PDF.

  3. MUy buen aporte, pero tienes un ligero problema en el script de decodificado en la linea

    «my $string = decode_base64($codificado);» no va «$codificado» si no «$string_codificada»

  4. sabes como puedo solucionar este problema:
    undefined subrutine &MIME::Base64::decode_base64 ??
    he revisado bien el script los modulo estan perfecto pero cuando utilizo el
    use MIME::Lite;
    y trato de ejecutarlo me da ese error.

    gracias por lo que puedas ayudarme

  5. Puedo encriptar el valor Ftpd0181$$ y me da este resultado : RnRwMDE4MTIxNDMwNDM4 pero cuando lo decodifico me resulta este valor : Ftp018121430438 como se puede dejar exactamente igual al codificado inicialmete ?.

    Muchas gracias.

  6. Puedo encriptar el valor Ftp0181$$ y me da este resultado : RnRwMDE4MTIxNDMwNDM4 pero cuando lo decodifico me resulta este valor : Ftp018121430438 como se puede dejar exactamente igual al codificado inicialmete ?.

    Muchas gracias.

Comments are closed.