wav ファイルがあり、その内容の MD5 ハッシュを計算する必要があります。Perlを使用してそれを行うにはどうすればよいですか?
13749 次
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
#!/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 に答える