я канечно понимаю что щас дофига сайтов всяких по енкоде\декоде но делато было вечером..
Код:
#!usr/bin/perl
system ('cls');
print "+++++++++++++++++++++++++++++++++++++++++++++++\n";
print "+++++++++c0nvert0r by ph1l1ster++++++++++\n";
print "+++++++++++++++++++++++++++++++++++++++++++++++\n\n\n";
print "### What we will do?\n\n1 - C4lcul4te MD5\n2 - C4lcul4te Base64\n3 - C4lcul4te SHA1\n4 - ASCII to hex\n5 - ASCII to Binary\n6 - Hex to Binary\n7 - SQL Hex\n8 - Exit\n";
$what = <stdin>;
if ($what == 1)
{
use Digest::MD5 qw(md5_hex);
print "Enter simvols: ";
$md5 = <STDIN>;
chomp ($md5);
print "Md5 hash: ", md5_hex("$md5"), "\n";
}
if ($what == 2)
{
use MIME::Base64;
print "Enter simvols: ";
$b64 = <STDIN>;
chomp ($b64);
print "Base 64 hash: ", encode_base64("$b64"), "\n";
}
if ($what == 3)
{
use Digest::SHA1 qw(sha1_hex);
print "Enter simvols: ";
$sha = <STDIN>;
chomp ($sha);
print "SHA-1: ", sha1_hex($sha), "\n";
}
if ($what == 4)
{
use strict;
sub ascii_to_hex ($)
{
(my $asc = shift) =~ s/(.|\n)/sprintf("%02lx", ord $1)/eg;
return $asc;
}
print "Enter simvols:: ";
my $asc = <STDIN>;
chomp ($asc);
my $hex = ascii_to_hex $asc;
print "Hex: $hex\n";
}
if ($what == 5)
{
sub AsciiToBinary
{
my(%h)=('0'=>'00110000','1'=>'00110001','2'=>'00110010','3'=>'00110011','4'=>'00110100','5'=>'00110101','6'=>'00110110','7'=>'00110111','8'=>'00111000','9'=>'00111001','A'=>'01000001','B'=>'01000010','C'=>'01000011','D'=>'01000100','E'=>'01000101','F'=>'01000110','G'=>'01000111','H'=>'01001000','I'=>'01001001','J'=>'01001010','K'=>'01001011','L'=>'01001100','M'=>'01001101','N'=>'01001110','O'=>'01001111','P'=>'01010000','Q'=>'01010001','R'=>'01010010','S'=>'01010011','T'=>'01010100','U'=>'01010101','V'=>'01010110','W'=>'01010111','X'=>'01011000','Y'=>'01011001','Z'=>'01011010' );
$_=uc $_[0];
s/([0-9A-Z])/$h{$1}/g;
return $_;
}
print "Enter simvols:\n";
$line_in = <stdin>;
$line_out=AsciiToBinary($line_in);
print "$line_out";
}
if ($what == 6)
{
sub HexToBinary
{my(%h)=('0'=>'0000','1'=>'0001','2'=>'0010','3'=>'0011','4'=>'0100','5'=>'0101','6'=>'0110','7'=>'0111','8'=>'1000','9'=>'1001','A'=>'1010','B'=>'1011','C'=>'1100','D'=>'1101','E'=>'1110','F'=>'1111');
$_=uc $_[0];
s/([0-9A-F])/$h{$1}/g;
return $_; };
print "Enter simvols:\n";
$line_in = <stdin>;
$line_out=HexToBinary($line_in);
print "Binary:$line_out";
}
if ($what == 7)
{
use strict;
sub sql_hex ($)
{
(my $sql = shift) =~ s/(.|\n)/sprintf("%02lx", ord $1)/eg;
return $sql;
}
print "Enter simvols:: ";
my $sql = <STDIN>;
chomp ($sql);
my $sql = sql_hex $sql;
print "Hex:0x$sql\n";
}
if ($what == 8)
{
print "Good luck!\n";
exit;
}