Underc0de

Programación Scripting => Perl => Mensaje iniciado por: BigBear en Noviembre 21, 2014, 10:11:36 am

Título: [Perl] Ejemplo de Cifrado Murcielago
Publicado por: BigBear en Noviembre 21, 2014, 10:11:36 am
Un simple ejemplo en Perl sobre como realizar el cifrado Murcielago.

Código: (perl) You are not allowed to view links. Register or Login
# !usr/bin/perl
# Cifrado Murcielago
# Coded By Doddy Hackman in the year 2014

head();
menu();
copyright();

# Functions

sub head {
    print "\n-- == Cifrado Murcielago == --\n";
}

sub copyright {
    print "\n\n-- == (C) Doddy Hackman 2014 == --\n";
}

sub menu {
    print qq(
===============
= Menu        =
===============
1 - Cifrar    =
2 - Descifrar =
3 - Exit      =
===============
);

    print "\n[+] Option : ";
    chomp( my $op = <stdin> );

    if ( $op eq "3" ) {
        copyright();
        <stdin>;
        exit(1);
    }

    print "\n[+] Enter text : ";
    chomp( my $text = <stdin> );

    print "\n[+] Result ...\n\n";

    if ( $op eq "1" ) {
        print cifrado_murcielago($text);
        <stdin>;
        menu();
    }
    elsif ( $op eq "2" ) {
        print descifrado_murcielago($text);
        <stdin>;
        menu();
    }
    else {
        menu();
    }

}

sub cifrado_murcielago {
    my $texto = shift;
    $texto =~ tr/murcielagoMURCIELAGO/01234567890123456789/;
    return $texto;
}

sub descifrado_murcielago {
    my $texto = shift;
    $texto =~ tr/01234567890123456789/murcielagoMURCIELAGO/;
    return $texto;
}

# The End ?
Título: Re:[Perl] Ejemplo de Cifrado Murcielago
Publicado por: Juan en Noviembre 24, 2014, 02:51:54 pm
De 70 líneas a 22 y hace exactamente lo mismo.

Código: (perl) You are not allowed to view links. Register or Login
#!/usr/bin/perl

print "\n-- == Cifrado Murcielago == --\n";
 
menu:

print qq(===============\n= Menu        =\n===============\n1 - Cifrar    =\n2 - Descifrar =\n3 - Exit      =\n===============\n);

print "\n[+] Option : ";
chomp( my $op = <stdin> );

exit if ( $op eq "3");

print "\n[+] Enter text : ";
chomp($_ = <stdin>);

$_ =~ tr/murcielagoMURCIELAGO/01234567890123456789/ and print if ($op eq "1");
$_ =~ tr/01234567890123456789/murcielagoMURCIELAGO/ and print if ($op eq "2");
     
print "\n\n-- == (C) Doddy Hackman 2014 == --\n";
       
goto menu;
 
Título: Re:[Perl] Ejemplo de Cifrado Murcielago
Publicado por: BigBear en Noviembre 24, 2014, 04:08:47 pm
en ningun momento busque la reduccion de codigo en el script , igual gracias por comentar.
Título: Re:[Perl] Ejemplo de Cifrado Murcielago
Publicado por: Juan en Noviembre 24, 2014, 04:18:06 pm
Pero... hacer hacer algo tan simple es un poco absurdo que lo hagas con funciones :-\
Título: Re:[Perl] Ejemplo de Cifrado Murcielago
Publicado por: BigBear en Noviembre 24, 2014, 04:23:37 pm
no le veo absurdo solo le agregue funciones de mas al script porque quize , es un simple ejemplo no estamos en una competencia de codigos xD.
Título: Re:[Perl] Ejemplo de Cifrado Murcielago
Publicado por: kid_goth en Noviembre 24, 2014, 04:24:40 pm
A mi parecer mejor programar bien que por programar... el codigo de Doddy es obviamente mas organizado y legible para quienes inician en la prog, ademas el uso de goto? naaaaa. Juan a veces no es tanto lo simple que sea, sino lo que pueda aportar para otras cosas, y aunque el código en si, hasta en 1 sola linea en bash lo haces si lo necesitaras. Lo que importa es que quien lo tome (me imagino mas por practica o por ejemplo) al menos vaya aprendiendo de funciones y esas cosas....

Saludos
Título: Re:[Perl] Ejemplo de Cifrado Murcielago
Publicado por: LKI en Noviembre 24, 2014, 05:04:27 pm
Citar
"Cualquier tonto puede escribir código que un ordenador entiende. Los buenos programadores escriben código que los humanos pueden entender."  Martin Fowler 


Citar
"Los programas deben ser escritos para que la gente los lea y sólo incidentalmente, para que las máquinas los ejecuten."                        Abelson / Sussman

Citar
"Medir el progreso de la programación por líneas de código es como medir el progreso en la construcción de aviones por el peso."                  Bill Gates
Título: Re:[Perl] Ejemplo de Cifrado Murcielago
Publicado por: Juan en Noviembre 24, 2014, 05:12:25 pm
No creo que mi código sea ilegible, de hecho lo veo mas leigle que el otro, ya que lo puedes leer y entender sin dar vueltas por el código.
Título: Re:[Perl] Ejemplo de Cifrado Murcielago
Publicado por: BigBear en Noviembre 25, 2014, 11:05:42 am
pensa lo que quieras Juan nadie se opone xD , igual si tan legible es tu codigo la proxima vez identalo y evita estos chorizos largos :

Código: (perl) You are not allowed to view links. Register or Login
print qq(===============\n= Menu        =\n===============\n1 - Cifrar    =\n2 - Descifrar =\n3 - Exit      =\n===============\n);
$_ =~ tr/murcielagoMURCIELAGO/01234567890123456789/ and print if ($op eq "1");

Espero que sea el fin de esta discusion sin sentido xD.

Saludos.