У меня есть wav-файл, и мне нужно рассчитать хеш-файл MD5 его содержимого. Как я могу это сделать с помощью Perl?Как вычислить хэш MD5 wav-файла в Perl?
ответ
Уверенный, вы можете. Просто найдите Digest::MD5 для хеширующей части и any WAV-related module, если вы хотите хэш определенной части файла (например, пропускать метаданные).
Просто используйте Digest::MD5.
В зависимости от ваших потребностей, Perceptual Hashing может быть интересным, кстати. Это позволяет сравнивать файлы, сравнивая их хэши (аналогичное содержимое имеет похожие хэши). Однако до сих пор не существует какой-либо Perl-реализации AFAIK.
Использование 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);
Использование File::Slurp с Digest::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";
Существует модуль для него: Digest::MD5::File. При этом код упрощается:
use Digest::MD5::File qw(file_md5_hex);
my $md5 = file_md5_hex($some_file_name);
ссылка мертва и код не запускается (по крайней мере для меня по умолчанию win64 build из активного состояния perl) – Kip
В следующем, на основе a comment by user hexten, работает для меня, и должны работать лучше, чем ответов, хлюпая файл:
use Digest::MD5 qw(md5_hex);
open my $fh, '<', $file;
my $md5 = Digest::MD5->new->addfile($fh)->hexdigest;
close $fh;
(в данный момент) Наивысшая -voted ответ предлагает использовать Digest::MD5::File
, но это не работает для меня, по крайней мере, на последней версии Windows ActiveState Perl, и ссылка в ответе теперь мертва.
- 1. Вычислить хэш MD5 Blob
- 2. Вычислить MD5 хэш строки
- 3. Как вычислить хэш MD5 в DB2 9.5
- 4. Вычислить хэш MD5 строки UTF8
- 5. Как вычислить хэш MD5 каждого содержимого NSMutableArray?
- 6. Вычислить хэш SHA1 или MD5 в iReport
- 7. Вычислить значение хэш-файла MD5 C++ WinAPI
- 8. VBA вычислить хэш MD5 на содержимое файла
- 9. Как вычислить хэш MD5 большого файла в C?
- 10. как расшифровать md5 хэш
- 11. Как использовать хэш md5?
- 12. вычислить и отобразить файл MD5 Хэш в метке
- 13. MD5 хэш в silverlight
- 14. Вычислить MD5 строки в C++
- 15. Окна приложений 8 хэш md5
- 16. Можно ли вычислить хэш MD5 непосредственно на языке T-SQL?
- 17. Как издеваются MD5 хэш столкновение
- 18. MD5 хэш как искусственные ключи
- 19. Файлы SharePoint MD5 хэш
- 20. MD5 хэш отличается
- 21. MD5 хэш MySQL является md5 неправильный
- 22. md5 хэш спутанность
- 23. Computing md5 хэш
- 24. Как шифровать текст в хэш MD5 в VB.NET?
- 25. Рассчитайте видео файл md5 (хэш)
- 26. Python сравнить md5 хэш
- 27. Как перебирать хэш (хэш) в Perl?
- 28. Как включить хэш внутри хэш в perl?
- 29. как приращение хэш хэш в Perl
- 30. Как получить MD5 хэш файла в C++
Гораздо лучше хлебать с помощью File :: Slurp: –
Или не хлебать весь файл на все ... WAV файлы могут быть большими и Digest :: MD5 будет считываться из дескриптора: открыть свой $ Ф.Х., '<', $ thewav или die "Невозможно открыть $ thewav: $! \ n"; print Digest :: MD% -> new-> add_file ($ fh) -> hexdigest; – hexten