Estoy entrando:
appletree:~ somename$ shasum -a 512 <<< test
Y la salida es:
0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123 -
Luego voy a algunos generadores de hash en línea y también ingreso "test". Sus respuestas son:
ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff
http://passwordsgenerator.net/sha512-hash-generator/ :
EE26B0DD4AF7E749AA1A8EE3C10AE9923F618980772E473F8819A5D4940E0DB27AC185F8A0E1D5F84F88BC887FD67B143732C304CC5FA9AD8E6F57F50028A8FF
Entonces los generadores en línea están de acuerdo. ¿Qué me falta en el comando de la consola Mac?
Estaba leyendo las man
páginas. Veo que se implementa usando una biblioteca Perl. Sin embargo, creo que sha512 sería una designación única, así que tengo que cavar más profundo.
Parece que hay una pregunta duplicada: ¿por qué mi hash de línea de comandos es diferente de los resultados de hash MD5 en línea? . Mientras que la otra pregunta está en el mismo contexto, que es un espacio en blanco inesperado, surge de una situación diferente.
<<<
es una cadena aquí , y hay una opción de diseño de cómo las cadenas aquí agregan nueva línea.echo 'bla' |
significa tubería, que invoca subcapas, y también tiene argumentos sobre cómo manejar la nueva línea. Aquí parece que debes considerar la versión de shell .
Respuestas:
La entrada a la
shasum
invocación en la pregunta estest\n
(con una nueva línea), notest
.Si cede
test
sin una nueva líneashasum
, obtendrá el mismo resultado que las herramientas en línea que cita:Por cierto, creo que no hay nada especial o específico de MacOS sobre lo
shasum
encontrado en MacOS; Creo queshasum
es parte de la distribución estándar de Perl, instalada junto con, por ejemplo, elperl
comando.fuente
Prueba esto:
Conociendo los shells de Unix, probablemente obtenga un 0x0a no deseado al final de esa cadena.
fuente
od
etiquetará los caracteres de control y los hará más evidentes; intente:od -t a -t x1 <<< test
(realmente nunca usó hexdump),