Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2147657
  • 博文数量: 227
  • 博客积分: 10521
  • 博客等级: 上将
  • 技术积分: 3452
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-20 14:59
个人简介

低调做人,高调做事!

文章分类

全部博文(227)

文章存档

2013年(4)

2012年(8)

2011年(16)

2010年(24)

2009年(92)

2008年(83)

分类: LINUX

2008-12-10 23:07:32

顾名思义,功能就不用解释。

例子:

#!/usr/bin/perl

use strict;
use Digest::MD5;

my $file_1 = shift || '/etc/passwd';
open( FILE, $file_1 ) or die "Can't open '$file_1': $!";
binmode(FILE);

my $md5 = Digest::MD5->new;
while () {
    $md5->add($_);
}
close(FILE);
print $md5->hexdigest, " $file_1\n";


###另外一种实现方法

my $file_2 = shift || '/etc/passwd';
open( FH, $file_2 ) or die "Can't open '$file_2': $!";
binmode(FH);

print Digest::MD5->new->addfile(*FH)->hexdigest, " $file_2\n";


输出如下:
[root@mail test]# ./md5.pl
70cd6c28d0037ad92301e07d47921c75 /etc/passwd
70cd6c28d0037ad92301e07d47921c75 /etc/passwd

如果是在shell环境下,这样输入:

[root@mail test]# cat /etc/passwd | md5sum
70cd6c28d0037ad92301e07d47921c75  -



结果完全一样,呵呵,当然是第2种方法最方便快捷了!



阅读(5213) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

zichuandi2015-04-07 16:16:42

楼主您好!我有几个问题想问下您
1.my $file_1 = shift || '/etc/passwd';这个语句执行的结果是什么?
2.70cd6c28d0037ad92301e07d47921c75 这个Hash值的原像是cat吗?

请见谅,我是小白,烦请楼主解答,谢谢