Чому я отримую інші результати від шазуму Mac, ніж від інших калькуляторів шазуму?


13

Я входжу:

appletree:~ somename$ shasum -a 512 <<< test

А вихід:

0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123  -

Тоді я заходжу до деяких онлайн-хеш-генераторів і теж ввожу "тест". Їх відповіді:

http://hashgenerator.de/ :

ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff

http://passwordsgenerator.net/sha512-hash-generator/ :

EE26B0DD4AF7E749AA1A8EE3C10AE9923F618980772E473F8819A5D4940E0DB27AC185F8A0E1D5F84F88BC887FD67B143732C304CC5FA9AD8E6F57F50028A8FF

Так що онлайн-генератори згодні. Що мені не вистачає в команді консолі Mac?

Я читав manсторінки. Я бачу, що це реалізовано за допомогою бібліотеки Perl. Однак я думаю, що sha512 було б унікальним позначенням, тому мені доводиться копати глибше.


Здається, виникає повторне запитання: Чому мій хеш командного рядка відрізняється від онлайн-хеш-файлів MD5? . Хоча інше питання знаходиться в тому ж контексті, який є несподіваним пробілом, він виходить із іншої ситуації.

  • <<<є рядок тут , і є вибір дизайну для того, як сюди рядки додають новий рядок.
  • echo 'bla' |означає трубопровід, який викликає додаткові оболонки, а також має аргументи, як обробляти новий рядок. Ось, здається, вам доведеться врахувати версію оболонки .

Велике спасибі боковим байкерам та Spiff. Пробіл знову вражає ^^ ^^
peter_the_oak


Зауважте, що рядок тут призначений бути точно ідентичним однорядному документу тут, а документ тут завжди закінчується новим рядком.
чепнер

Я не новачок в оболонці, але ось кілька складних деталей та новин, за які я вдячний. Тож дякую за всі коментарі та відповіді.
peter_the_oak

Тож ми з’ясували, що шасова команда Mac не відрізняється. Проблема була технічно помилкою користувача і мала стосуватися переданих даних, а не програми. Я можу запропонувати перейменувати питання на "Чому я отримую різні результати від шауму Мака ..." Таким чином, люди можуть миттєво підозрювати проблему, створену користувачем. (Якби я це бачив, я, можливо, був би менш схильний перевірити це питання прямо зараз. Як в даний час під назвою: "Що поширює шассум мак оболонки з інших калькуляторів шазуму?", Я прийшов сюди, щоб дізнатися про можливі відмінності від Mac, на чому це насправді не закінчилося
TOOGAM,

Відповіді:


32

Вхід до shasumвиклику у питанні test\n(з новим рядком), а не test.

Якщо ви testне shasumбудете отримувати новий рядок, ви отримаєте такий самий результат, як і онлайн-інструменти, які ви цитуєте:

$ echo -n "test" | shasum -a 512
ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff  -

До речі, я вважаю, що у shasumзнайденому на MacOS немає нічого особливого чи специфічного для MacOS; Я думаю, що shasumце частина стандартного дистрибутива Perl - встановлений разом із, наприклад, perlкомандою.


19

Спробуйте це:

hexdump -C <<< test

Знаючи оболонки Unix, ви, ймовірно, отримуєте небажаний 0x0a в кінці цього рядка.


2
odпозначить контрольні символи та зробить більш очевидними; спробуйте: od -t a -t x1 <<< test(ніколи не використовував hexdump),
toddkaufmann
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.