Eu sei que é facil demais quebrar base 64 e que vcs ja devem ter outros métodos, mais aki vai mais um..o código tah até grande demais pra um coisa que é bem simples...
#!/usr/bin/perl -w
#Programa: RØD Base 64
#Versão: 1.0
#SO's: Linux e Windows.
#Descrição: Encripta e Decripta menssagens usando Base 64
#Coded By: Ø Rodrigo Ø - [New Generation Crew]
use MIME::Base64; #Módulo pra Base64
$ver="v. 1.0";
system("clear");
print "\n+-------------[RØD Base 64]---------------+\n";
print "|---------------------------------$ver--|\n";
print "| |\n";
print "| Base 64 Encrypter e Decrypter. |\n";
print "| |\n";
print "| Coded By Ø Rodrigo Ø |\n";
print "+-----------------------------------------+\n\n";
#sleep 3;
system("clear");
print "
+======[Opções de Opções]======+
| [E] Encriptar arquivo (.txt).|
| [e] Encriptar menssagem. |
| [D] Decriptar arquivo (.txt).|
| [d] Decriptar menssagem. |
| |
| [X] Sair |
+------------------------------+\n";
print " Digite a opção desejada: ";
chomp($opcao=<STDIN>);
system("clear");
if ($opcao eq "E") { &en_txt; }
elsif ($opcao eq "e") { &en_msg; }
elsif ($opcao eq "D") { &de_txt; }
elsif ($opcao eq "d") { &de_msg; }
elsif ($opcao eq "X" || $opcao eq "x") {
exit;
} else {
print "\n\nOpção inválida, tente novamente...\n\n";
}
#Função para Encriptar um arquivo
sub en_txt(){
print "\nDigite o nome do arquivo: ";
chomp($arq=<STDIN>);
&tirar;
open(EN,"<$arq\.txt");
$msg=<EN>;
close(EN);
$msg=encode_base64("$msg");
print "\nO resultado é:
--------------------------------------------------------\n
$msg
--------------------------------------------------------\n\n";
&salvar;
}
#Função para Encriptar um arquivo
sub en_msg(){
print "\nDigite a menssagem para Encriptar: ";
chomp($msg=<STDIN>);
print "Encriptando, aguarde...\n\n";
$msg=encode_base64("$msg");
&frescura;
print "\nO resultado é: $msg\n\n";
}
#Função para Decriptar um arquivo
sub de_txt(){
print "\nDigite o nome do arquivo: ";
chomp($arq=<STDIN>);
&tirar;
open(DE,"<$arq\.txt");
$msg=<DE>;
close(DE);
$msg=decode_base64("$msg");
print "\nO resultado é:
--------------------------------------------------------\n
$msg
--------------------------------------------------------\n\n";
&salvar;
}
#Função para Decriptar uma menssagem
sub de_msg(){
print "\nDigite a menssagem para Decruptar: ";
chomp($msg=<STDIN>);
$msg=decode_base64("$msg");
&frescura;
print "\nO resultado é: $msg\n\n";
}
#Frescurinha no rabo
sub frescura(){
for ($i=0;$i<=100;$i+=25){
print "$i% ...\n";
sleep 1;
}
}
#Função para tirar o .txt
sub tirar(){
if ($arq =~ /\.txt$/){
$arq =~ s/\.txt$//;
}
}
#Função para salvar
sub salvar(){
<STDIN>;
system("clear");
print "Você deseja salvar o arquivo alterado? [S]Sim - [N]Não\n";
chomp($salvar=<STDIN>);
system("clear");
if ($salvar =~ /s/i){
open(SAV,">$arq\.txt");
print SAV "$msg\n";
close(SAV);
if (-e "$arq\.txt"){
print "\n\nArquivo salvo com sucesso.\n\n";
}
}
}
(Obs) para executar no windows é só trocar o comando system("clear") por system("cls");
Flws...
Ótimo programa.
Seria mais legal se ao invéz de usar encode_base64() e decode_base64(), poderia fazer toda a lógica matemática da criptografia base64 (Que não é TÃO complicado).
Seria bom pra você, e pros outros estudarem!
HadeS
Se eu entendesse um pouco de criptográfia eu até ariscava...