Я вхожу:
appletree:~ somename$ shasum -a 512 <<< test
И вывод:
0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123 -
Затем я захожу в некоторые онлайн-хеш-генераторы и тоже вводю «тест». Их ответы:
ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff
http://passwordsgenerator.net/sha512-hash-generator/ :
EE26B0DD4AF7E749AA1A8EE3C10AE9923F618980772E473F8819A5D4940E0DB27AC185F8A0E1D5F84F88BC887FD67B143732C304CC5FA9AD8E6F57F50028A8FF
Так что онлайн-генераторы согласны. Чего мне не хватает в консольной команде Mac?
Я читал man
страницы. Я вижу, что это реализовано с использованием библиотеки Perl. Тем не менее, я думаю, что sha512 будет уникальным обозначением, поэтому я должен копать глубже.
Кажется, есть двойной вопрос: почему мой хэш командной строки отличается от онлайн-результатов MD5? , Хотя другой вопрос находится в том же контексте, который является неожиданным пробелом, он возникает из другой ситуации.
<<<
является здесь строка , и есть выбор дизайна для того, как здесь строки добавить символ новой строки.echo 'bla' |
означает трубопровод, который вызывает вложенные оболочки, а также имеет аргументы для обработки новой строки. Здесь, кажется, вы должны рассмотреть версию оболочки .
Ответы:
Вход для
shasum
вызова в вопросеtest\n
(с новой строкой), а неtest
.Если вы дадите
test
без перевода строки,shasum
вы получите тот же результат, что и цитируемые вами онлайн-инструменты:Кстати, я думаю, что нет ничего особенного или специфичного для MacOS в том, что можно
shasum
найти в MacOS; Я думаю, чтоshasum
это часть стандартного дистрибутива Perl, установленного вместе, например, сperl
командой.источник
Попробуй это:
Зная оболочки Unix, вы, вероятно, получите нежелательный 0x0a в конце этой строки.
источник
od
помечает управляющие символы и делает их более заметными; попробуй:od -t a -t x1 <<< test
(никогда не использовал hexdump),