2012-04-03 8 views
9

Ich muss SHA256 Hashing von E-Mail-Adressen und ich brauche das Ergebnis als String.SHA256 Digest in Perl

versuchte ich folgendes:

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

    print $digest; 

Aber es druckt etwas wie:

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

ich die Ausgabe müssen Sie wie folgt vor:

cbc41284e23c8c7ed98f589b6d6ebfd6 

Die obige Hash erzeugt SHA256 mit Generator von Apache DigestUtils.

Was mache ich falsch? Ich bin ein Neuling in Perl, also Entschuldigung, wenn es etwas albern ist.

Danke.

+0

** ** MD5-Tag auf diese Frage sollte hinzugefügt werden –

Antwort

16

cbc41284e23c8c7ed98f589b6d6ebfd6 ist MD5 für [email protected], nicht SHA-256


SHA Verschlüsselungen für [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== 

Wenn Sie sicher, dass Sie SHA-256 und Sie suchen HEX Ausgang verwenden, dann versuchen Sie dieses:

Script:

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

oder

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

Ausgabe:

0947300f280d422f4418366931cebcfbd17f5ede1507a951153b0f15a21c10de 

Und wenn Sie MD5 mit HEX ausgeben möchten, dann versuchen Sie dieses:

Script:

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

oder

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

Ausgang:

cbc41284e23c8c7ed98f589b6d6ebfd6 
6

wahrscheinlich Sie wollen Digest::SHA qw(sha256_hex) Von CPAN der Digest::SHA Seite

verbindet Logischer die Argumente in einer einzigen Saite, und gibt seinen SHA-1/224/256/384/512 als hexadezimale Zeichenfolge codiert verdauen.