SHA256摘要在perl

我需要做SHA256哈希的电子邮件地址,我需要结果作为一个字符串.

我试过以下:

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

  print $digest;

但它打印如下:

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

我需要输出如下:

cbc41284e23c8c7ed98f589b6d6ebfd6

上述散列是使用Apache DigestUtils的SHA256发生器生成的.

我究竟做错了什么?我是perl的新手,如果是愚蠢的话,那么可以借口.

谢谢.

解决方法

cbc41284e23c8c7ed98f589b6d6ebfd6是swaranga@gmail.com的MD5,而不是SHA-256

swaranga@gmail.com的SHA加密>>

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

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

脚本:

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

要么

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

输出

0947300f280d422f4418366931cebcfbd17f5ede1507a951153b0f15a21c10de

并且如果你想要MD5与HEX输出,那么尝试这一个

脚本:

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

要么

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

输出

cbc41284e23c8c7ed98f589b6d6ebfd6

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...