SHA256在perl中摘要 [英] SHA256 digest in perl

查看:163
本文介绍了SHA256在perl中摘要的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我尝试了以下操作:

 使用Digest :: SHA qw(sha256); 
my $ data ='swaranga@gmail.com';
my $ digest = sha256($ data);

print $ digest;

但是它打印的内容类似于:

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

我需要输出如下:

  cbc41284e23c8c7ed98f589b6d6ebfd6 

上述散列是使用 Apache DigestUtils



我做错了什么?我是perl中的一个新手,所以如果它是愚蠢的借口。



谢谢。

解决方案 cbc41284e23c8c7ed98f589b6d6ebfd6 是 MD5 swaranga@gmail.com ,不是 SHA-256




SHA $ c> swaranga@gmail.com >>

  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 + KZtRBr wbJ029YDOS + WyNLU5nNh5IxxJ21vsJpMJWCwZQy
SHA-512的(Base64):2xqgU92e4ZGwkau8uL6tLsaaGrJmS7He7u29tJsl57x2gKdlmuiMBGr9q / HjXtDgaHY / h1Szab + t5pzyH2XRZg ==



< hr>

如果您确定要使用 SHA-256 ,并且您正在寻找 HEX 输出,请尝试以下操作:



脚本:

 #!/ usr / bin / perl 
使用Digest :: SHA qw(sha256);
print unpack(H *,sha256('wawaea@gmail.com')),\\\
;

 #!/ usr / bin / perl 
使用Digest :: SHA qw(sha256_hex);
print sha256_hex('swaranga@gmail.com'),\\\
;

输出:

  0947300f280d422f4418366931cebcfbd17f5ede1507a951153b0f15a21c10de 






如果您希望使用 HEX 输出的 MD5 ,请尝试以下操作:

 #!/ usr / bin / perl 
使用Digest :: MD5 qw(md5);
打印解包(H *,md5('wawaea@gmail.com')),\\\
;

 #!/ usr / bin / perl 
使用Digest :: MD5 qw(md5_hex);
print md5_hex('swaranga@gmail.com'),\\\
;

输出:

  cbc41284e23c8c7ed98f589b6d6ebfd6 


I need to do SHA256 hashing of email addresses and I need the result as a String.

I tried the following:

  use Digest::SHA qw(sha256);
  my $data = 'swaranga@gmail.com';
  my $digest = sha256($data);

  print $digest;

But it prints something like:

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

I need the output as follows:

cbc41284e23c8c7ed98f589b6d6ebfd6

The above hash is generated using SHA256 generator of Apache DigestUtils.

What am I doing wrong? I am a newbie in perl, so excuse if it is something silly.

Thanks.

解决方案

cbc41284e23c8c7ed98f589b6d6ebfd6 is MD5 for swaranga@gmail.com, not SHA-256


SHA encryptions for swaranga@gmail.com >>

 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==


If you sure you want to use SHA-256 and you are looking for HEX output, then try this one:

Script:

#!/usr/bin/perl
use Digest::SHA qw(sha256);
print unpack("H*", sha256('swaranga@gmail.com')), "\n";

or

#!/usr/bin/perl
use Digest::SHA qw(sha256_hex);
print sha256_hex('swaranga@gmail.com'), "\n";

Output:

0947300f280d422f4418366931cebcfbd17f5ede1507a951153b0f15a21c10de


And if you want MD5 with HEX output, then try this one:

Script:

#!/usr/bin/perl
use Digest::MD5 qw(md5);
print unpack("H*", md5('swaranga@gmail.com')), "\n";

or

#!/usr/bin/perl
use Digest::MD5 qw(md5_hex);
print md5_hex('swaranga@gmail.com'), "\n";

Output:

cbc41284e23c8c7ed98f589b6d6ebfd6

这篇关于SHA256在perl中摘要的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆