Я пытаюсь получить md5 хэш строки. Указанная строка состоит только из прописных и строчных букв и цифр. Никаких других символов, включая пробелы и символы новой строки. Строка вводится через клавиатуру, а не через файл, поэтому здесь нет ни спецификации, ни других флагов.
Если я запускаю локально, используя md5sum
я получаю следующий вывод:
ubuntu@ubuntu:~$ echo word | md5sum
a46ec67a0f2e7c387926ac5d783ea4b8 -
ubuntu@ubuntu:~$ echo "word" | md5sum
a46ec67a0f2e7c387926ac5d783ea4b8 -
ubuntu@ubuntu:~$ echo "word" -n | md5sum
3a21ca21563e9535a9012daef61a0bdf -
Я знаю, что разница между 2-м и 3-м выходами выше связана с отсутствием символа новой строки ( , (Оказывается, не было! Смотрите принятый ответ.)-n
). Эта часть мне понятна
Однако есть инструменты, которые дают третий результат. Все инструменты, не относящиеся к CLI, дают одинаковый результат, и это меня смущает:
- http://www.miraclesalad.com/webtools/md5.php говорит, что это
c47d187067c6cf953245f128b5fde62a
. - http://www.md5hashgenerator.com/ говорит, что это
c47d187067c6cf953245f128b5fde62a
. - http://www.md5.cz/ говорит, что это
c47d187067c6cf953245f128b5fde62a
. - http://www.md5online.org/md5-encrypt.html говорит, что это
c47d187067c6cf953245f128b5fde62a
. - http://md5-hash-online.waraxe.us/ говорит, что это
c47d187067c6cf953245f128b5fde62a
. - Это Android-приложение сообщает, что это
c47d187067c6cf953245f128b5fde62a
. echo -n "word" | unix2dos | md5sum
дает мнеc47d187067c6cf953245f128b5fde62a
.
Что тут происходит?