sha1sum
affiche un format hexadécimal du sha réel. Je voudrais voir une variante encodée en base64. éventuellement une commande qui sort la version binaire que je peux diriger, comme ceci: echo -n "message" | <some command> | base64
ou si elle le sort directement c'est bien aussi.
hashsum
cryptography
base64
xénoterracide
la source
la source
echo foo | openssl dgst -binary -sha1 | base64
est équivalent, et probablement la façon la plus propre de le faire.openssl
de base64 a également l'avantage de ne dépendre que d'un seul outil (ksh: base64: not found
).sha512
, vous souhaiterez peut-être ajouter une-A
option à laopenssl base64
commande finale , pour éviter de diviser la chaîne résultante en plusieurs lignes.echo foo > somefile; cat somefile | openssl dgst -binary -sha1 | openssl base64
produit une chaîne différente?echo -n foo
etecho foo
produisez des chaînes différentes.Puisque
sha1sum
ne fournit pas d'option pour la sortie binaire, vous devrez probablement trouver un utilitaire qui fait le contraireod
et les diriger. En prenant la suggestion de fschmitt d'utiliserxxd
avec les drapeaux 'reverse' et 'plain dump', cela ressemblera à ceci:sha1sum | cut -f1 -d\ | xxd -r -p | base64
la source
xxd
:)Je ne suis pas complètement sûr de comprendre ce que vous voulez, mais je pense que quelque chose comme ce qui suit devrait fonctionner:
Fondamentalement, je prends la sortie hexadécimale, l'utilise
sed
pour en faire une chaîne de valeurs hexadécimales échappées, puis l'utiliseecho -en
pour faire écho aux octetsbase64
.Nous pouvons confirmer que la sortie finale correspond au même hachage avec l'exercice suivant:
L'inspection visuelle montre que notre valeur base64 correspond à l'hex d'origine. Notez que si vous utilisez
hexdump
plutôt quexxd
vous devrez peut-être jouer un peu avec les paramètres de format pour obtenir la sortie que vous attendez.la source
Perl possède un module base64 (dans la distribution de base depuis 5.7.1).
Si vous avez le
Digest::SHA
module (dans la distribution de base depuis 5.9.3), ou l'ancienDigest::SHA1
module, vous pouvez faire tout le calcul en perl. Depuis perl 5.10.1,b64digest
ne remplit pas la sortie base64; si vous avez besoin d'un rembourrage, le plus simple est d'utiliserMIME::Base64
.la source
Le hachage SHA256 encodé en Base64 est récemment devenu une somme de contrôle de fichier plutôt standard dans OpenBSD . Cela peut être fait simplement en ajoutant une
-b
option à la commande OpenBSDsha256
(ou sha1, sha512):ou:
la source