加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – 将MD5 / SHA1哈希从二进制转换为十六进制摘要

发布时间:2020-12-15 23:27:04 所属栏目:大数据 来源:网络整理
导读:我正在寻找一种方法将MD5和SHA1哈希从二进制转换为十六进制表示,反之亦然.我想在Perl中做到这一点,但也欢迎一个共同的解释. use Digest::MD5 qw(md5 md5_hex md5_base64);$data = "Plaintext";$digest_bin = md5($data);$digest_hex = md5_hex($data); 如何
我正在寻找一种方法将MD5和SHA1哈希从二进制转换为十六进制表示,反之亦然.我想在Perl中做到这一点,但也欢迎一个共同的解释.

use Digest::MD5 qw(md5 md5_hex md5_base64);
$data = "Plaintext";
$digest_bin = md5($data);
$digest_hex = md5_hex($data);

如何比较$digest_bin和$digest_hex,并确保它们是相同$data的哈希值?

解决方法

如果你看一下Digest :: MD5 :: Perl的源代码,它是Digest :: MD5的纯perl版本,你会看到:

sub _encode_hex { unpack 'H*',$_[0] }    
sub md5_hex { _encode_hex &md5 }

所以你可以这样做:

if ($digest_hex eq unpack 'H*',$digest_bin) {
    # same data
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读