9

wav ファイルがあり、その内容の MD5 ハッシュを計算する必要があります。Perlを使用してそれを行うにはどうすればよいですか?

4

7 に答える 7

20

そのためのモジュールがあります: Digest::MD5::File。これにより、コードは次のように簡素化されます。

use Digest::MD5::File qw( file_md5_hex );
my $md5 = file_md5_hex( $some_file_name );
于 2009-06-24T14:36:35.867 に答える
12

できますよ。ハッシュ部分についてはDigest::MD5を探してください。また、ファイルの特定の部分をハッシュする場合 (たとえば、メタデータをスキップする場合) は、WAV 関連のモジュールを探してください。

于 2009-06-24T11:32:32.993 に答える
9

Digest::MD5の使用

use Digest::MD5 qw(md5);
my $hash;
{
    local $/ = undef;
    open FILE, "$wav_file_name";
    binmode FILE;
    my $data = <FILE>;
    close FILE;
    $hash = md5($data);
}

または、OO インターフェイスを使用できます。

use Digest::MD5;

open FILE, "$wav_file_name";

my $ctx = Digest::MD5->new;
$ctx->addfile (*FILE);
my $hash = $ctx->digest;
close (FILE);
于 2009-06-24T11:44:48.490 に答える
3

Digest::MD5を使用するだけです。

ちなみに、必要に応じて、Perceptual Hashingも興味深い場合があります。ハッシュを比較することでファイルを比較できます (類似のコンテンツには類似のハッシュがあります)。しかし、まだ perl の実装は知りません。

于 2009-06-24T11:33:09.590 に答える
2

File::SlurpDigest::MD5の使用:

#!/usr/bin/perl

use strict;
use warnings;

use Digest::MD5 qw(md5_hex);
use File::Slurp;

my ($input) = @ARGV;

write_file "$input.md5", md5_hex(scalar read_file $input, binmode => ':raw'), "\n";
于 2009-06-24T13:54:56.420 に答える