- Как зашифровать пароль по MD5
- Re: Как зашифровать пароль по MD5
- Re: Как зашифровать пароль по MD5
- Re: Как зашифровать пароль по MD5
- Как: Сгенерировать Хэш Пароля в Linux и как узнать тип хэша
- Сгенерировать Хэш Пароля в Linux
- Создать Хэш Пароля для /etc/shadow
- Узнать тип хэша
- Добавить комментарий Отменить ответ
- Как закодировать пароль пользователя в Linux
- Какой пароль пользователя нужен для команды useradd в Линукс
- Команда для шифрования пароля пользователя в Linux
- Резюме
- Как создать хеши паролей SHA512 в командной строке
- пример
- обходные
- Python (> = 3.3)
- Python (2.x или 3.x)
- md5 как пароль
Как зашифровать пароль по MD5
Поделитесь пожайлуста информацией: как зашифрвать пароль по MD5, какие библиотечные функции для этого можно использовать, если можно киньте примерчик. И еще такой вопрос : как проверить правильность введенного пароля, если исходный пароль зашифрован по MD5?
Re: Как зашифровать пароль по MD5
U menya net Linux pod rukoy shas, no dimau, chto man crypt is good starting point. Chto by proverit’ pravil’nost’ vvedennogo parolya nado provesty tot zhe hash i sravnit’ rezul’taty.
Re: Как зашифровать пароль по MD5
Для того, чтобы crypt() использовал MD5 а не DES, надо ему salt передавать в
форме $1$ $. В общем, info libc -> искать по слову crypt
unsigned char *digest, *data_block;
data_block = «Your plain text password»;
digest = crypt((const char *)data_block, «$1$01234567$»);
fprintf(stdout, «MD5 encrypted pass: %s\n», digest);
Re: Как зашифровать пароль по MD5
С тем как зашифровать пароль по MD5 я разобрался, но опять нарвался на грабли: к-ды adduser и usermod криво работают с MD5 паролями, т.е после выполнения одной из этих команд MD5-пароль, возращаемый функцией crypt() в файле shadow оказывются урезанным. Может кто-нибудь знает как обойти эту проблему? У меня Red Hat 7.0
Источник
Как: Сгенерировать Хэш Пароля в Linux и как узнать тип хэша
Сгенерировать Хэш Пароля в Linux
Linux хранить зашифрованные пароли пользователей, также как и другую информацию связанную с безопасностью, например сроки действия аккаунтов или паролей, в файле /etc/shadow .
Однажды у вас может возникнуть необходимость вручную отредактировать файл /etc/shadow для того, чтобы задать или изменить чей-то пароль.
В отличие от файла /etc/passwd , который могут читать все, файл /etc/shadow должен быть доступен для чтения ИСКЛЮЧИТЕЛЬНО пользователю ROOT.
Для этого вам придется сгенерировать хэш пароля в формате, который будет совмести с /etc/shadow .
Нет необходимости устанавливать дополнительные утилиты, так как это может быть легко сделано из командной строки в Linux с помощью Python.
Создать Хэш Пароля для /etc/shadow
Зашифрованные пароли в /etc/shadow хранятся в следующем формате:
$ID обозначает тип шифрования, $SALT — это случайная (до 16 символов) строка и $ENCRYPTED — хэш пароля.
Тип Хэша | ID | Длина Хэша |
---|---|---|
MD5 | $1 | 22 символов |
SHA-256 | $5 | 43 символов |
SHA-512 | $6 | 86 символов |
Используйте следующие команды из терминала в Linux для создания хэшированых паролей со случайной солью для /etc/shadow .
Создать MD5 Хэш пароля:
Создать SHA-256 Хэш пароля:
Создать SHA-512 Хэш пароля:
Надеюсь эти команды будут вам полезны.
Только не забудьте поменять MySecretPassword на ваш YourSecretPassword.
Как вы видите, это действительно очень легко генерировать хэши для /etc/shadow из командной строки в Linux с помощью Python.
В частности потому, что Python, по умолчанию, установлен в большинстве Linux дистрибутивах.
Узнать тип хэша
Существуют два основных параметра, которые могут помочь распознать тип используемой хэш-функции:
- Длина ХЭШа (каждая хэш-функция имеет определенную выходную длину);
- Используемый алфавит (есть ли английские буквы? числа 0-9 и A-F … возможно это hex? используются ли специальные символы?).
Step 1: Скачиваем последнюю версию (v1.1 на текущий момент)
Step 2: Запускаем скрипт и копируем интересующие нас ХЭШи
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Источник
Как закодировать пароль пользователя в Linux
При написании скриптов на Bash для автоматизации создания нового пользователя Linux так, как например описано в → этой статье (с помощью команды useradd ) не достаточно просто передать пароль в эту команду. Передаваемый пароль должен быть зашифрован. Иначе, при создании нового пользователя, значение его пароля будет сохранено «как есть», а при попытке входа этого пользователя в систему, пароль будет кодироваться. И пользователь не сможет залогиниться так как обычно закодированный вариант пароля и его вводимое значения не совпадают. В этой статье подробно рассмотрим, как передавать в систему закодированную версию пароля пользователя.
Какой пароль пользователя нужен для команды useradd в Линукс
Для начала разберёмся с тем, какой пароль пользователя нужен для команды useradd в Debian. Для этого, как было подробно рассмотрено в статье по ссылке во вступлении, посмотрим мануал этой команды и увидим, что опция -p, необходимая для передачи пароля, требует:
зашифрованного варианта ввода пароля.
Значит, то, что нужно передать в систему должно быть сначала зашифровано. Сразу покажу, как это сделать, а потом накидаю, куда смотреть, если понадобятся подробности.
Команда для шифрования пароля пользователя в Linux
Итак, зашифровать пользователь в том виде, в котором он требуется для правильной работы с авторизацией пользователей в Линукс, можно таким способом:
В примере выше, зашифрованная версия пароля сохранится в переменной encpass .
Для шифрования используется функция openssl с параметрами passwd и -crypt , ну и, собственно, передаётся само значение пароля в не зашифрованном виде.
Подробное описание функции openssl можно прочитать в мануале, вызвав его man openssl .
Краткую подсказку по функции openssl можно получить, введя openssl help . При этом будет выдан список стандартных и прочих команд по управлению процессом шифрования.
Резюме
Более подробно рассматривать разные режимы шифрования, их алгоритмы, принципы передачи и хранения данных, мне пока не интересно. Самое главное — вопрос, как создавать пользователя, передавая значение его пароля в систему через переменную, рассмотрен, опробован и оказался работоспособен.
Источник
Как создать хеши паролей SHA512 в командной строке
В Linux я могу создать хэш пароля SHA1, используя sha1pass mypassword . Есть ли похожий инструмент командной строки, который позволяет мне создавать sha512 хэши? Тот же вопрос для Bcrypt и PBKDF2 .
Да, вы ищете mkpasswd , который (по крайней мере, в Debian) является частью whois пакета. Не спрашивай почему .
К сожалению, моя версия по крайней мере не делает bcrypt. Если ваша библиотека C делает это, она должна (и на странице man есть опция -R, чтобы установить силу). -R также работает на sha-512, но я не уверен, что его PBKDF-2 или нет.
Если вам нужно сгенерировать пароли bcrypt, вы можете сделать это довольно просто с помощью Crypt::Eksblowfish::Bcrypt модуля Perl.
В любом дистрибутиве Red Hat, таком как Fedora, CentOS или RHEL, команда mkpasswd не включает в себя тот же набор переключателей, что и версия, обычно включаемая в Debian / Ubuntu.
ПРИМЕЧАНИЕ. Команда mkpasswd фактически является частью expect пакета, и ее, вероятно, следует избегать. Вы можете узнать, к какому пакету он принадлежит, с помощью любой из этих команд.
пример
Оба эти метода лучше, чем использование, rpm так как пакеты не должны быть установлены для определения местоположения */mkpasswd .
обходные
Чтобы обойти это, вы можете использовать следующие однострочники Python или Perl для генерации паролей SHA-512. Обратите внимание, что они соленые:
Python (> = 3.3)
Python (2.x или 3.x)
Примечание: $ 6 $ обозначает sha512. Поддержка этого метода задания алгоритма зависит от поддержки библиотечной функции crypt (3) уровня операционной системы (обычно в libcrypt). Это не зависит от версии Python.
В этих примерах пароль — это строка «пароль», а соль — «соль соли». В обоих примерах используется $ 6 $, что означает, что вы хотите, чтобы crypt использовал SHA-512.
Источник
md5 как пароль
Есть такая идея «сохранения» паролей. Берем осмысленное предложение и вычисляем от него md5 сумму, которую используем в качестве пароля. Предложение легко запомнить, а утилита для вычисления есть в любом дистрибутиве. Насколько безопасен такой способ?
В практике любой пароль отличный от 1234 безопасен. В теории ничем не лучше, чем просто использовать то же самое предложение без md5. А вобще, md5 уже давно считается небезопасным в криптографических целях хэшом, если уж хочешь то используй sha256.
Как скажете, Товарищ Майор.
Зачем? Обычный длинный пароль состояющий из 32+ символов вполне себе безопасный. И даже не обязательно его делать рандомным. Можно, к примеру, строчки из стихов использовать как парольные фразы.
Результатом будет длинный и неудобный пароль, в котором энтропии кот наплакал => тогда уж лучше длинный и неудобный реально случайный пароль.
Любое предложение имеет варианты написания: пунктуация (запятая или точка с запятой, двоеточие или тире, точка или многоточие), заглавные буквы, е/ё, разыные чередования -ой/-ою, -ье/-ие. И т. д. Придётся всякий раз перебирать все возможные варианты. Глупо и непрактично.
Берем осмысленное предложение и вычисляем от него . сумму
По-моему все так и работают. Сами пароли нигде не хранятся. Хранятся только некие «суммы» от них.
Ну кроме того что можно не заморачиваться с высчитыванием md5 как тут уже сказали, рассмотри такой кейс — ты логинишься где-то таким способом и у тебя рядом кто-то стоит и пялится в монитор — ты открываешь терминал и пишешь «echo ‘мой пароль’ | md5sum»? Секьюрно, чо. А еще на другой машине где ты логиниишься все команды будут на какой-нибудь удаленный сервер логироваться или на локальный в обход history, как почистишь? Опять же, представь что к паролю предъявляются требования типа «не больше трех букв подряд» — проще перебрать несколько хэшей или просто запомнить что в этом пароле у тебя после каждого второго символа идет цифра 1 или что-то в этом духе.
Вопрос еще как он думает запускать md5sum с login screen если (наверняка) забудет пароль.
Да, в нормальных системах пара логин+пароль хешируется (используя например sha256) и сверяется с ранее записанной суммой. Отсюда побочный эффект — непрактичность дешифрования пароля в случае если владелец его забыл.
И пароль оседает в открытом виде в истории))
Я все самописный велосипед хочу заменить на такое:
И пароль оседает в открытом виде в истории))
Надо перед командой пробел ставить, тогда в истории не сохраняется.
Собственно, в /etc/shadow примерно так и делают, с той разницей, что:
- Добавляют случайную «соль», чтоб
- взломщик не мог использовать словарь готовых хэшей;
- хэши одинаковых паролей выглядели по-разному;
- пароли нельзя было взломать при помощи радужных таблиц.
- md5sum, как уже сказали, на сегодняшний день считается не тру. Лучше использовать scrypt.
Однако все эти хэши не спасают от простых паролей, т. к. если взломщик исходит из того, что пароль является словарным словом либо распространённой комбинацией типа qwerty, abc123 и т. д. и оказывается прав, то простым перебором он сможет за ограниченное время подобрать нужное слово. Аналогично он может перебрать все полностью случайные, но короткие пароли (длиной ★★ ( 02.06.18 21:05:36 )
либо вообще хранить пароли открытым текстом, вот пруф
Вкудахте так делает.
У меня в Gentoo HISTCONTROL пустой по умолчанию.
Напишу только «радужные таблицы».
log2(10+6) * 32 = 128 бит сложности. Или случайный пароль из 96 символов длиной 19 байт.
Вышла новая версия хешера паролей с защитой от «радужных таблиц»:
Берем осмысленное предложение и вычисляем от него md5 сумму, которую используем в качестве пароля.
Просто набери его в английской раскладке.
Требует bash. Ох, чую перейду.
Кстати хороший способ, я его использую для своих компьютеров и vps(все лучше чем один пароль на все), только на стороннем ресурсе в интернетах его лучше не практиковать, т.к. такой пароль тяжело взломать инструментальным брутфорсом, но вот если пароль хранится в открытом виде(мыж не знаем добросовестность хозяев сервиса), то могут быть последствия. Пароль на стороннем ресурсе это в принципе мусорный пароль, после очередного слива паролей сервис попросить его сменить и осмысленный алгоритм может поломается, плюс в броузере есть менеджеры паролей, так что их надежнее генерировать.
Просто набери его в английской раскладке.
А смысл? Способу сто лет, и любой малолетний кул-хацкер о нём знает. А добавить в переборщик паролей таблицу перекодировки из русской в латинскую раскладку несложно. Как и сгенерить словарь русских слов, набранных таким способом. Зато при вводе такого пароля с виртуальной клавиатуры, где обычно одновременно видно только одну текущую раскладку, могут быть проблемы.
Там дальше в моем сообщении есть еще немного текста, про историю в том числе.
Тогда уж надежнее unset HISTFILE делать )
Посмотри на pwgen -H , может устроит.
Только осмысленное предложение нужно в файл записать.
Должно быть труднопробиваемо, если сделать правильно. Например, хеш лучше считать каким-то PBKDFом,scryptом etc. Нужно ещё добавить к нему название сайта и логин, от которого пароль, что обеспечит уникальность результата. И обеспечить, чтобы компоненты(скажем, md5sum) были не специально поддельные, это вообще непонятно как.
У этого способа есть 1 большой недостаток — пароль трудно менять. Компроментация или потеря «основного» будет весьма болезненной. Соответственно, нужно писать скрипт обхода всех твоих серверов для автозамены старого новым способом, подходящим для каждого сервера способом(коих может быть много).
Да, и 1 маленький — войти на «первую» машину так не получится, т.е. уже 2 нужно.
Из готового со свистками и колокольцами есть masterpassword.
Хранят хэш с солью.
Но нафига? Безопасности это не прибавляет, даже скорее наоборот — оставляешь пароль в открытом виде в bash_history (ну или что ты там используешь). Если так и делать то нужна соль.
Ну давай, сбрутфорсь мне «гиперболахерболыпельменейнанай», например.
А при чём тут это? Всё зависит от длины. Но речь ведь шла о наборе русского текста на английской раскладке. Если вот эту фразу набрать на английской раскладке, её сложно сломать. Но не из-за раскладки, а из-за длины. А сломать вместо «пароль» — «gfhjkm» — легко. Но это слово слишком короткое, его даже без словаря сбрутфорсить можно. Возьмём подлиннее: вместо «синхрофазотрон» — «cby[hjafpjnhjy» подобрать ненамного сложнее, если заранее предполагать возможность создания пароля по такому принципу. Т. е. эта абракадабра практически никакой доп. защиты не даёт, а вот сложностей при вводе с виртуальной клавиатуры добавляет.
Пока злоумышленник не ведёт на тебя целенаправленную атаку — вполне безопасен. Если начнёт вести и поймёт твою схему — способ будет безопасен ровно настолько, насколько безопасно твоё предложение.
Всё можно сделать гораздо интереснее. Берётся мемас (желательно тупой) или картинка с котиками/сиськами/поняшами. Вычисляется хэш-сумма этого файла. Несколько символов в начале или конце суммы отбрасываются — и вуаля: получается пароль.
И вот уже этот файл можно хранить на флешке или в облаке, и считать хэш-сумму, когда понадобится.
Да, вот это звучит заманчиво. Если сделать какой-нибудь sha512, то вообще без шансов взломать, если, конечно не перехватят саму картинку, но это еще надо догадаться, что сумма с нее считается.
Вот именно. Такого мусора на любой флешке в избытке, и ответ на вопрос «зачем тут этот файл» как бы очевиден для постороннего.
О, не знал! Спасибо! UPD: ни фига не работает
А если искать хэш от картинки?
Это же защита всего-навсего от подбора. А угонят длинный осмысленный пароль, или хеш от него, или хеш от хеша картинки на которой осмысленная парольная фраза и знать не будешь про подлом.
Усложнение парольной фразы после определенного момента не добавляет защищенности, а только привносит проблемы генерации, ввода и хранения, усложнение клиента и сервера, и т.п.
Куда уж надежнеё, короткий запоминаемый, но часто меняемый пароль. Или вообще автоматизация, читай «сессионные ключи». Всякий раз в подобных темах говорю, что я за токены, за связку короткоживущего сессионного и долго живущего рефреш-токена. В таком подходе тоже есть проблемы, но по крайней мере можно гарантировать, что злоумышленник (если он либо токены угонит, либо получит доступ к auth-серверу) будет иметь доступ к защищаемым ресурсам не больше времени жизни сессионного токена.
Я что-то не понимаю. Допустим, я взял картинку и сгенерировал хэш. Получилось что-то вроде 6ed0dd02806fa89e25de060c19d3ac86cabb87d6a0ddd05c333b84f4 Это я использую в качестве пароля. Каким способом такой пароль можно подобрать? Брутфорс явно не сработает. «Словаря» для картинок нет. Допустим, стащат хэш этого пароля. Ну и что? Тут никакие радужные таблицы и словари не помогут.
Конечно, можно сгенирировать случайную строку символов. Но плюс у хэша картинки в том, что его не надо запоминать или записывать, его можно каждый раз вычислять заново по файлу.
Каким способом такой пароль можно подобрать? Допустим, стащат хэш этого пароля. Ну и что?
Его не будут подбирать, его просто «угонят» — троян, кейлогер, социнженерия, перехват при передаче auth-серверу, дырки и баги в реализации на стороне клиента etc. Тут сложность подбираемости пароля не особо и поможет.
А про радужные таблицы я написал, не разобравшись в ОП, неправильно понял идею. Да, при определенном подходе их использование для подбора пароля никак не поможет. Но проблема в том, что пароли как подбирают, так и воруют.
Видите ли, если есть метод, то есть и контрметод.
Есть аргумент, но есть и контраргумент.
6ed0dd02806fa89e25de060c19d3ac86cabb87d6a0ddd05c333b84f4 Каким способом такой пароль можно подобрать
Например, хранящийся на сервере хеш сопадёт с таковым от слова «password». Просто не повезёт.
Логика, знания, опыт (других людей и особенно — свой опыт), здравый смысл — это сила.
Вычислять по файлу может быть дофига неудобно: если перед тобой только 1 комп с приглашением от /bin/login, то хэш считать тяжко. А сольют такой пароль, как и любой другой, ты же не знаешь наверняка, хранят ли в открытом виде базу паролей на отдельно выбранном ресурсе.
На Бога надейся, а сам не плошай. Бережёного Бог бережет. Бог — он Бог, но и сам не будь плох.
Берем осмысленное предложение и вычисляем от него md5 сумму, которую используем в качестве пароля.
. И прилично понижаем стойкость пароля.
Алфавит исходного пароля — 26 + 10 и на два ещё помножь, если буквы разного регистра.
Алфавит мд5сум — 10 + 5 символов.
Если знать о твоих за***х, можно проще перебором подобрать твой пароль.
Да, в нормальных системах пара логин+пароль хешируется
Источник