2012-04-03 21 views
9

Necesito hacer SHA256 hash de direcciones de correo electrónico y necesito el resultado como una cadena.SHA256 digest en perl

He intentado lo siguiente:

use Digest::SHA qw(sha256); 
    my $data = '[email protected]'; 
    my $digest = sha256($data); 

    print $digest; 

pero se imprime algo como:

B/D6i1μû^Þ©Q;¢Þ 

necesito la salida de la siguiente manera:

cbc41284e23c8c7ed98f589b6d6ebfd6 

El hash anterior se genera utilizando SHA256 generador de Apache DigestUtils.

¿Qué estoy haciendo mal? Soy un novato en Perl, así que disculpa si es algo tonto.

Gracias.

+0

** ** MD5 etiqueta debe añadirse a esta pregunta –

Respuesta

16

cbc41284e23c8c7ed98f589b6d6ebfd6 es MD5 para[email protected], no SHA-256


SHA cifrados para [email protected] >>

SHA-1:   3a3be7013e297e28d24979aadc4ae75d84ce0844 
SHA-256:   0947300f280d422f4418366931cebcfbd17f5ede1507a951153b0f15a21c10de 
SHA-384:   34c01f3956aac32aacae1a6cf67f8a66d441af06c9d36f580ce4be5b234b5399cd879231c49db5bec269309582c19432 
SHA-512:   db1aa053dd9ee191b091abbcb8bead2ec69a1ab2664bb1deeeedbdb49b25e7bc7680a7659ae88c046afdabf1e35ed0e068763f8754b369bfade69cf21f65d166 
SHA-1 (Base64): OjvnAT4pfijSSXmq3ErnXYTOCEQ= 
SHA-256 (Base64): CUcwDygNQi9EGDZpMc68+9F/Xt4VB6lRFTsPFaIcEN4= 
SHA-384 (Base64): NMAfOVaqwyqsrhps9n+KZtRBrwbJ029YDOS+WyNLU5nNh5IxxJ21vsJpMJWCwZQy 
SHA-512 (Base64): 2xqgU92e4ZGwkau8uL6tLsaaGrJmS7He7u29tJsl57x2gKdlmuiMBGr9q/HjXtDgaHY/h1Szab+t5pzyH2XRZg== 

Si usted seguro de que desea utilizar SHA-256 y que busca salida HEX, entonces prueba este:

Guión:

#!/usr/bin/perl 
use Digest::SHA qw(sha256); 
print unpack("H*", sha256('[email protected]')), "\n"; 

o

#!/usr/bin/perl 
use Digest::SHA qw(sha256_hex); 
print sha256_hex('[email protected]'), "\n"; 

Salida:

0947300f280d422f4418366931cebcfbd17f5ede1507a951153b0f15a21c10de 

Y si quieres MD5 con salida HEX, a continuación, intente éste:

Guión:

#!/usr/bin/perl 
use Digest::MD5 qw(md5); 
print unpack("H*", md5('[email protected]')), "\n"; 

o

#!/usr/bin/perl 
use Digest::MD5 qw(md5_hex); 
print md5_hex('[email protected]'), "\n"; 

Salida:

cbc41284e23c8c7ed98f589b6d6ebfd6 
6

es probable que desee Digest::SHA qw(sha256_hex) de CPAN Digest::SHA página

une Lógicamente los argumentos en una sola cadena, y devuelve su SHA-1/224/256/384/512 digesto codifica como una cadena hexadecimal.