В целях безопасности многие сайты не хранят в открытом виде пароли пользователей. Функция восстановления пароля в таких случаях не “восстанавливает” старый пароль, а генерирует новый. При авторизации в этом случае присланный пароль шифруется (обычно хеш-функцией), а результат сравнивается с тем, что хранится в базе. Если совпадают - все в порядке. Если нет - ошибка авторизации.
Однако, довольно часто, требуется войти в панель управления или администрирования (админку), доступ к которой потерян (или вообще неизвестен). Восстановление тоже может не работать. Как быть?
Если имеется доступ к базе - можно попробовать задать новый пароль “ручками”, непосредственно в таблице пользователей. У каждой системы управления может быть свой метод хранения хешированных паролей, однако, наиболее распространенных способов не так много.
- Хранение пароля в открытом виде
На сегодняшний день многие CMS не используют этот способ хранения пароля. Однако, полностью исключать этот случай нельзя. Возможно комбинация “логин-пароль” непосредственно из базы данных подойдет для входа.
- Хранение результата хеш-функции (хеш-суммы) пароля.
При задании (или генерации) пароля производится вычисление хеш-функции от строки пароля, и это значение записывается в таблицу. Наиболее распространенные функции для хранения паролей к сайтам - md5() , sha1(). Распознать хеш-функцию можно по характеным признакам:
md5-хеш содержит 128 бит (16 байт) и обычно представляется как последовательность из 32 шестнадцатеричных цифр. Например, MD5(”md5″) = 1bc29b36f623ba82aaf6724fd3b16718
sha1-хеш содержит 160 бит (20 байт) и представляется в виде последовательности 40 шестнадцатеричных цифр (5 групп по 8 символов). sha1(”sha”) = d8f45903 20e1343a 915b6394 170650a8 f35d6926
- Хранение хеш-суммы пароля и соль (salt)
Этот вариант имеет ещё более высокую степень защиты. В базе хранится хеш сумма и соль в виде hash:salt. (символ двоеточия приведен для примера, однако, именно его использование распространено)
salt - (соль) обычно строка из нескольких символов. Используется для генерации хеш суммы. функция вычисляется не от значения пароля, а от значения “пароль”+”соль” ( “соль”+”пароль”, md5(md5(”пароль”)+”соль”)).
Хранение паролей в некоторых CMS
MD5 |
c4ca4238a0b923820dcc509a6f75849b |
Используется в phpBB v2.x, Joomla версии ниже 1.0.13, а также во многих других форумах и CMS.Длина: 16 байт. shugarcrm (поле user_hash) |
md5($pass.$salt) |
6f04f0d75f6870858bae14ac0b6d9f73:1234 |
Используется в WB News, Joomla версии 1.0.13 и выше.Длина: 16 байт. |
md5($salt.$pass) |
f190ce9ac8445d249747cab7be43f7d5:12 |
Используется в osCommerce, AEF, Gallery и других CMS.Длина: 16 байт. |
md5(md5($pass)) |
28c8edde3d61a0411511d3b1866f0636 |
Используется в e107, DLE, Koobi .Длина: 16 байт. |
md5(md5($pass).$salt) |
6011527690eddca23580955c216b1fd2:wQ6 |
Используется в vBulletin, IceBB.Длина: 16 байт. |
md5(md5($salt).md5($pass)) |
81f87275dd805aa018df8befe09fe9f8:wH6_S |
Используется в IPB.Длина: 16 байт. |
md5(md5($salt).$pass) |
816a14db44578f516cbaef25bd8d8296:1234 |
Используется в MyBB.Длина: 16 байт. |
SHA-1 |
356a192b7913b04c54574d18c28d46e6395428ab |
Используется во многих форумах и CMS.Длина: 20 байт.Алгоритм: соответствует функции sha1() языка PHP. |
sha1(strtolower($username).$pass) |
Admin:6c7ca345f63f835cb353ff15bd6c5e052ec08e7a |
Используется в SMF.Длина: 20 байт. |
base64_encode($pass) |
* |
Используется в Shop Script . |
Cбрасываем пароль для JOOMLA
update `jos_users` set password = CONCAT(MD5(CONCAT('123','123')),':123') where id=1
пароль, как несложно догадаться - 123
Сброс пароля для Bitrix
http://www.vladsun.com/cms/bitrix_password_change.php
* с версии 7.1 checkword = (md5(salt+pass))
http://www.insidepro.com/hashes.php?lang=eng