J'ai un fichier wav et j'ai besoin de calculer le hachage MD5 de son contenu. Comment puis-je faire cela en utilisant Perl?Comment puis-je calculer le hachage MD5 d'un fichier wav en Perl?
Répondre
Bien sûr, vous pouvez. Recherchez simplement Digest::MD5 pour la partie de hachage et any WAV-related module si vous souhaitez hacher une partie spécifique du fichier (par exemple, ignorer les métadonnées).
Utilisez simplement Digest::MD5.
En fonction de vos besoins, Perceptual Hashing peut également vous intéresser. Il vous permet de comparer les fichiers en comparant leurs hachages (les contenus similaires ont des hachages similaires). Cependant, il n'y a toujours pas d'implémentation perl AFAIK.
Utilisation du 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);
}
ou vous pouvez utiliser l'interface OO:
use Digest::MD5;
open FILE, "$wav_file_name";
my $ctx = Digest::MD5->new;
$ctx->addfile (*FILE);
my $hash = $ctx->digest;
close (FILE);
En utilisant File::Slurp avec 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";
Il y a module pour elle: Digest::MD5::File. Avec elle, le code est simplifié:
use Digest::MD5::File qw(file_md5_hex);
my $md5 = file_md5_hex($some_file_name);
le lien est mort et le code ne fonctionne pas (au moins pour moi sur la version win64 par défaut de l'état actif perl) – Kip
qui suit, sur la base a comment by user hexten, travaille pour moi et devrait faire mieux que les réponses qui Slurp le fichier:
use Digest::MD5 qw(md5_hex);
open my $fh, '<', $file;
my $md5 = Digest::MD5->new->addfile($fh)->hexdigest;
close $fh;
Le sommet (actuellement) -voted réponse suggère d'utiliser Digest::MD5::File
, mais cela ne fonctionne pas pour moi au moins sur la dernière version de Windows de ActiveState Perl, et le lien dans la réponse est maintenant mort.
- 1. hachage MD5 Décrypter
- 2. Fichier checksum MD5
- 3. Le hachage MD5 se calcule différemment sur le serveur
- 4. Problème de hachage MD5 avec Java
- 5. Stockage de hachage MD5 dans SQL Server
- 6. Comment charger un fichier dans un hachage Perl?
- 7. Calculer le hachage sans avoir le tampon entier en mémoire à la fois
- 8. Extrait le fichier wav du fichier vidéo
- 9. Comment convertir un hachage MD5 à une chaîne et l'utiliser comme un nom de fichier
- 10. Encoder le fichier wav à pcm
- 11. Comment remplacer une clé de hachage Perl?
- 12. Comment stocker un tableau 2d dans un hachage en Perl?
- 13. Quelle est la meilleure façon de copier en profondeur un hachage de hachage en Perl?
- 14. Comment puis-je créer un hachage de hachages en Perl?
- 15. Comment transmettre un hachage à une fonction en Perl?
- 16. Enregistrement d'un fichier WAV sur le disque
- 17. Comment calculer sha1sum d'un fichier en C++?
- 18. PCM wav au fichier vox
- 19. iPhone - convertir le mp3 en wav?
- 20. Comment lire un fichier wav dans Delphi?
- 21. Comment calculer un hachage pour une chaîne (url) dans bash pour la mise en cache de wget
- 22. Quel est le moyen le plus simple de convertir un fichier wav compressé en un fichier wav non compressé en C# ou en C++?
- 23. Pourquoi mon hachage MD5 .net-calculé n'est-il pas équivalent au hachage calculé sur un site Web?
- 24. Générer automatiquement MD5 et afficher
- 25. Comparaison des MD5 en Python
- 26. Chiffrement MD5 à Blowfish?
- 27. VB.NET obtention des attributs d'un fichier .wav
- 28. Fractionner le fichier wmv/wav dans l'application WinForms
- 29. Comment puis-je auto-incrémenter une valeur de hachage Perl?
- 30. Java - fichier audio wav de sous-échantillonnage
Il vaut bien mieux Slurp en utilisant Fichier :: Slurp: –
Ou ne Slurp pas le fichier entier à tous ... les fichiers WAV peuvent être importants et Digest :: MD5 lire un descripteur de fichier: ouvrir mon fh $, '<', $ thewav ou die "Impossible d'ouvrir $ thewav: $! \ n"; print Digest :: MD% -> nouveau-> fichier_ajout ($ fh) -> hexdigest; – hexten