• Publicidad

Codificación de md5

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Codificación de md5

Notapor BigBear » 2010-03-19 14:53 @662

Hola.


Ando teniendo una duda porque quiero codificar un archivo con palabras a codificación md5 por cada palabra, pero cuando los codifico se ven diferentes que si hubiese codificado una sola palabra a md5 sin usar archivo de texto.

¿Alguien me podría explicar por qué sucede eso y cómo lo arreglo?
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Publicidad

Re: Codificación de md5

Notapor explorer » 2010-03-19 15:18 @679

Sin ver el código, es difícil decir qué pasa. Pero sospecho que la diferencia podría estar en que en una ocasión no quitas el carácter de fin de línea.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14482
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Codificación de md5

Notapor BigBear » 2010-03-19 16:13 @717

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use Digest::MD5;
  2.  
  3. $md = "123";
  4. $re = Digest::MD5->md5_hex($md);
  5. print $re;
  6.  
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Devuelve

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
8ece12f84d193069a579d5477b3efa66
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Segundo intento con archivo de texto

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use Digest::MD5;
  2.  
  3. $file = "word.txt";
  4.  
  5. open (W,$file);
  6. @a = <W>;
  7. close W;
  8.  
  9. for my $ar(@a) {
  10. $re = Digest::MD5->md5_hex($ar);
  11. print "$re\n";
  12. }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Archivo de texto

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
123
123
123
123
123
123
 
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Re: Codificación de md5

Notapor erv-Z » 2010-03-19 17:40 @778

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. use Digest::MD5;#Modulo
  4.  
  5. #Array con los valores
  6. @a = ("123\n","123\n","123\n","123\n","123\n","123","123\n","123\n");
  7. chomp @a;#Quitamos \n
  8.  
  9. for my $ar(@a){
  10.  
  11. $re = Digest::MD5->md5_hex($ar);
  12. print "$ar -> $re\n";
  13. }
  14. __END__
  15. Salida:
  16. 123 -> 8ece12f84d193069a579d5477b3efa66
  17. 123 -> 8ece12f84d193069a579d5477b3efa66
  18. 123 -> 8ece12f84d193069a579d5477b3efa66
  19. 123 -> 8ece12f84d193069a579d5477b3efa66
  20. 123 -> 8ece12f84d193069a579d5477b3efa66
  21. 123 -> 8ece12f84d193069a579d5477b3efa66
  22. 123 -> 8ece12f84d193069a579d5477b3efa66
  23. 123 -> 8ece12f84d193069a579d5477b3efa66
  24.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Editado xDD.
Última edición por erv-Z el 2010-03-19 18:01 @792, editado 1 vez en total
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: Codificación de md5

Notapor explorer » 2010-03-19 17:43 @780

Pues efectivamente... faltaba por quitar los caracteres de final de línea...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use diagnostics;
  5.  
  6. use Digest::MD5 qw(md5_hex);
  7.  
  8. my $md = "123";
  9. my $re = md5_hex($md);
  10. print "[$md][$re]\n";
  11.  
  12. open (W,'kk.txt');
  13. my @a = <W>;
  14. close W;
  15.  
  16. chomp @a;
  17.  
  18. for my $ar (@a) {
  19.     my $re = md5_hex($ar);
  20.     print "[$ar][$re]\n";
  21. }
  22.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Aparte de algún cambio estético, la clave está en la línea 16, donde les quitamos los caracteres de final de línea a todas las líneas.

Prueba a ejecutar el programa sin esa línea (o comentada), y verás la diferencia.

En muchas ocasiones, el uso de los corchetes '[' y ']' viene muy bien para saber con qué estamos tratando.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14482
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados