Запутался с шифровкой пароля

proWoke

Новичок
Здравствуйте. Мне надо зашифровать пароль от админки. В общем, что я делаю:
1. Есть форма <input type="text" value="<?=$password?>"> В неё должен подставляться пароль на данный момент от админки, чтобы человек видел какой он, когда захочет его поменять.
2. Когда изменяется пароль, скрипт заносит в базу его так:
PHP:
if (isset($_POST['button']))
{
$password = $_POST['password'];
$password = $password."abr13";
$password = md5($password);
mysql_query ("UPDATE `adminpass` SET `login`='$login', `password`='$password'") or die ("Mysql error: ".mysql_error());
header ("Location: index.php");
}
И вот в базе он у меня лежит весь такой зашифрованный. Но как мне его расшифровать, когда он подставляется в значение value в теге <input>?

Или я просто неправильно что то делаю? Проверка на правильно ввода пароля, у меня идёт обычным файлом lock.php Где потом просто будет if ($password == md5($password.abr13)) { welcome !}
Надеюсь обьяснял просто.
 

dimagolov

Новичок
хеш на то он и хеш, что необратимый.

ничего показывать старого не нужно. наоборот, нужно просить ввести старый пароль, для того, чтобы его могли поменять на новый, чтобы кто попало не мог назначить новый пароль, добравшись до открытой консоли.
 

craz

Нестандартное звание
хеш на то он и хеш, что необратимый.

ничего показывать старого не нужно. наоборот, нужно просить ввести старый пароль, для того, чтобы его могли поменять на новый, чтобы кто попало не мог назначить новый пароль, добравшись до открытой консоли.
ага) в смысле да) +1)
 

proWoke

Новичок
Вон оно как:). Придётся кое что переделать у прошлого заказчика. Быдлокод, такой быдлокод... Стыдно аж.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Кста, у меня опрос.
Кто с какой стороны "солит" пароли? =))
1. Солю вначале
2. Солю вконце
3. Солю и там и там (типа шоб наверняка =)))
4. Не солю, нафиг надо. :D
 

dr-sm

Новичок
в базе храню как-то так:
md5($pwd . $salt . $megaSecretRandomString) . ':' . $salt
 

AmdY

Пью пиво
Команда форума
dr-sm
ты случаем ни из magento?
Mr_Max
фиолетово где, главное немного испортить хеш, достаточно одного символа безразлично где и радуги идут лесом.
 

tz-lom

Продвинутый новичок
AmdY
ой,да ладно
есть у нас хэш 24634636FAB345
и что будет если мы к нему припишем a ?

задача соления - расширить диапазон значений ,чтобы у вас небыло хеша от 16ти различных знаков
а вообще годно на каждого юзера держать свою соль,чтобы было обидно кулхацкеру :)
 

AmdY

Пью пиво
Команда форума
если добавим, то будет другой хешь.
действительно, если знать соль, можно получить первоначальный пароль :(. шет
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
AmdY

ты случаем ни из magento?
Это заразно. Я кстати не встречал больше нигде такого "креативного" подхода в хранении хешей.
И что-то, в случае маге, - смысла "А ПОЧЕМУ" я не уловил.
 

Ragazzo

TDD interested
Хм, а можно использовать стойкие криптоалгоритмы, вот это будет тогда наверняка..мне хватает обычного md5, хотя иногда приписываю что-нибудь...)
 

Ragazzo

TDD interested
ну это да, просто не для больших проектов его использую...
 

dr-sm

Новичок
dr-sm
ты случаем ни из magento?
неа, даже не сталкивался никогда...
концептуальной разницы, креативно хранить хеш в базе или нет, я не вижу :D.

по идее соль нужна чтоб убрать радугу и дни рождения.
padding чисто для красоты ))).

хотя, в тех случаях, когда это имеет значение, лучше базу правильно сготовить,
если уж так страшен аццкий sql injection....
 

fixxxer

К.О.
Партнер клуба
AmdY


Это заразно. Я кстати не встречал больше нигде такого "креативного" подхода в хранении хешей.
И что-то, в случае маге, - смысла "А ПОЧЕМУ" я не уловил.
Нормальный подход.
Если выбросить $megaSecretRandomString, получаем систему, идентичную юниксовой.
В широко используемых системах, код (или хотя бы бинари, неважно) которых доступны любому, никакую секретную строку не спрячешь - а в движке для сайта вполне, потому это тут еще один уровень защиты.
 

dimagolov

Новичок
если логин можно менять, то при его смене придется делать принудительную перегенерацию пароля
 
Сверху