Приветствую. Выше есть тема, про подбор паролей md5. Иногда я её просматриваю. И кое-что мне не ясно. Вот пример хеша из shadow: $1$RR3MmUwi$O1f.TdhS1C7BB635sPjHn0:18315:0:99999:7::: Согласно манам в сети, видно что хеш - md5 т.к. $1$. Дальше соль до $ и сам хеш. Мне не ясно, почему в хеше мд5 присутствует "." и почему в нём символы разного регистра.
Да обычно хэш выдаётся в hex формате. Но тут используется для хранения немного видоизменёнaя кодировка base64 (символы './0-9A-Za-z'), вместо символа + (base64-encoding) используется . (shadow-encoding). И к тому же символы сдвинуты, что-бы получить нормальный base64(символы 'A-Za-z0-9+/'), вам нужно задать команду Code: echo 'O1f.TdhS1C7BB635sPjHn0' | tr ./0-9A-Za-z A-Za-z0-9+/ -> aDrAfpteDOJNNIFH4bvTzC и к этой строке добавить два символа "=" как паддинг (количество символов для base64 должно быть кратным 4). Тоесть в конце выходит 'aDrAfpteDOJNNIFH4bvTzC==', который вы уже можете декодировать простым base64-декодером и с помощью команды xxd получить MD5-хэш в hex формате Code: echo 'aDrAfpteDOJNNIFH4bvTzC==' | base64 -d | xxd -ps -> 683ac07e9b5e0ce24d348147e1bbd3cc
Спасибо за разъяснение. Нигде нормально не находил. Соль тоже так зашифрована (мд5 и бэйс), или в открытом виде лежит?
Соль не зашифрованна, а так-же в этом же формате base64 Code: echo 'RR3MmUwi' | tr ./0-9A-Za-z A-Za-z0-9+/ | base64 -d | xxd -ps -> 75d158ca0f2e