web-dev-qa-db-fra.com

Générer un sha256 à partir de la ligne de commande Linux

Je sais que la chaîne "foobar" génère le hash SHA 256 c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2 using http://hash.online-convert.com/sha256-generator

Cependant le shell en ligne de commande:

hendry@x201 ~$ echo foobar | sha256sum 
aec070645fe53ee3b3763059376134f058cc337247c978add178b6ccdfb0019f  -

Génère un hachage différent. Qu'est-ce que je rate?

210
hendry

echo produira normalement une nouvelle ligne, qui est supprimée avec -n. Essaye ça:

echo -n foobar | sha256sum
315
mvds

Si vous avez installé openssl, vous pouvez utiliser:

echo -n "foobar" | openssl dgst -sha256

Pour d'autres algorithmes, vous pouvez remplacer -sha256 par -md4, -md5, -ripemd160, -sha, -sha1, -sha224, -sha384, -sha512 ou -whirlpool.

89
Farahmand

Si la commande sha256sum n'est pas disponible (sur mavericks par exemple), vous pouvez utiliser:

echo -n "foobar" | shasum -a 256

40
Sucrenoir

echo -n fonctionne et il est peu probable qu'il disparaisse à cause d'un usage historique massif. Cependant, selon les versions récentes de standard POSIX , les nouvelles applications conformes sont "encouragées à utiliser printf ".

28
Nicholas Knight

echo produit un caractère de fin de ligne qui est également haché. essayer:

/bin/echo -n foobar | sha256sum 
8
Nordic Mainframe

Je crois que echo génère un retour à la ligne final. Essayez d’utiliser -n en tant que paramètre pour faire écho à la nouvelle ligne.

7
Thomas Owens