7
votes

Comment utiliser Perl pour obtenir un hasch SHA1 d'un fichier de la ligne de commande Windows?

J'ai un fichier appelé secure.txt dans c: \ temp . Je souhaite exécuter une commande perl de la ligne de commande pour imprimer le hachage SHA1 de Secure.txt . J'utilise ActiveperL 5.8.2. Je n'ai pas utilisé Perl avant, mais c'est l'option la plus pratique disponible en ce moment.


1 commentaires

Bonjour du futur! Les deux actifs et la fraise Perl incluent la Digest :: Sha Href="https://metacpan.org/pod/distribution/digest-sha /hasum" Rel="nofollow Noreferrer"> Shasum Commande < / a>, et il devrait déjà être votre % de path% si vous avez choisi les options par défaut lors de l'installation. Si vous êtes vraiment, vraiment veux écrire votre propre wrapper pour Digest :: Sha, puis les autres réponses ici sont formidables. Mais si vous préférez utiliser un outil de ligne de commande que se produit à fournir par un module Perl "standard", voir ma réponse ci-dessous.


4 Réponses :


21
votes
C:\> mysha1sum.pl mysha1sum.pl mysha1sum.pl 
8f3a7288f1697b172820ef6be0a296560bc13bae  mysha1sum.pl
8f3a7288f1697b172820ef6be0a296560bc13bae  mysha1sum.pl

1 commentaires

NIT: Parce que Secure.txt est le seul fichier, son contenu devient l'argument s à SHA1_HEX (chaque ligne d'un argument séparé). Comme cela se produit, SHA1_HEX rejoint ses arguments de retour et donne le SHA1 de l'ensemble du dossier, mais l'utilisation de <> d'autres endroits ne fonctionnera pas nécessairement de cette façon.



-1
votes

5 commentaires

Veuillez utiliser les fichiers lexicaux locaux - Ouvrir mon $ in_data, '<', 'Secure.txt' ou mourir ...


@Ether - c'est une question de préférence personnelle.


Il y a de bonnes raisons d'utiliser des poignées lexicales. Voir Stackoverflow.com/questions/1479741/...


Utilisez de bonnes habitudes même lorsque vous n'avez pas besoin pour qu'ils restent des habitudes lorsque vous avez besoin. :)


Il y a un moyen de le faire sans lire le contenu du fichier vous-même.




0
votes

A partir de cette écriture, Strawberry perl et ActiveState Perl Inclure le shasum code> commande avec Digest :: SHA a>. Si vous avez choisi les options par défaut lors de la configuration, cela se trouvera déjà dans votre %%% code>.

Si vous vraiment, vraiment veux forte> pour écrire votre propre wrapper pour Digest: : Sha, les autres réponses ici sont excellentes. P>

Si vous voulez simplement "utiliser Perl" pour obtenir le hachage SHA1 pour un fichier, dans le sens où vous em> avez em> Activeze Perl et il est livré avec le Shasum code> utilitaire de ligne de commande, c'est aussi simple que: p> xxx pré>

L'algorithme de hachage par défaut est SHA1; Ajouter -A1 code> Si vous voulez être explicite (pas une mauvaise idée). p>

Le format de sortie par défaut est le hachage, deux espaces, puis le nom de fichier. Ceci est le même format que sha1sum code> et utilitaires similaires, communément trouvé sur les systèmes UNIX / Linux. Si redirigé dans un fichier, ce nom de fichier peut être donné à Shasum -C code> ultérieurement afin de vérifier l'intégrité quels que soient les fichiers que vous avez déposés précédemment. P>

Si vous êtes vraiment, Vraiment em> Vous ne voulez pas voir le nom de fichier, juste le hachage SHA1, l'un ou l'autre de ceux-ci coupera la partie nom de fichier: p>

Utilisation de PowerShell: P>

for /f %i in ('shasum secure.txt') do echo %i


0 commentaires