Всем добрый день столкнулся с такой проблемой пытаюсь сделать регистрацию для сайта на joomla 2.5 регистрацию написал самую простую все работает (скажу сразу регистрация абсолютно другая просто в виде занесении информации в базу ну я думаю не столь важно) проблема в следующем в базу пользователь добавляется также можно его и активировать но авторизоваться нельзя поскольку паролю хешируется толь в md5 + соль а в joomla базе пароль выглядит так $P$DBHbxMfZwhQcnSSCByDyTrF1F/HI6n0 (123456) как мне сделать что авторизация проверяла только пароль в хеше md5 ? или убрать его вовсе чтоб логинился по открытому паролю?
в прямом, тот хеш что ты показал в первом посте, это хеш md5(wordpress), однако в джумле используется md5($password.$salt) в чем сложность провести проверку по алгоритму? вытащить соль, собрать хеш и сверить два хеша?
хешь что я прописал был из базы joomla с локального хоста (сложность в том что я не знаю как его проверить и в каком файле( ) в регистрации использую простую шифровку $salt = 'dhawddaw'; $pass md5($password.$salt); может можно как то убрать проверку при авторизации чтоб просто проверял пароль (но и это тоже думаю не вариант поскольку не безопасно) если же только как то проверять по хешированию что я делаю при регистрации с паролем
для твоего хеша вот алгоритм: PHP: <?php function createHash($pass, $salt) { $hash = hex2bin(md5($salt.$pass)); for ($i = 0; $i < 32768; $i++) { $hash = hex2bin(md5($hash.$pass)); } $output = ''; $i = 0; $itoa64 = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; do { $value = ord($hash[$i++]); $output .= $itoa64[$value & 0x3f]; if ($i < 16) $value |= ord($hash[$i]) << 8; $output .= $itoa64[($value >> 6) & 0x3f]; if ($i++ >= 16) break; if ($i < 16) $value |= ord($hash[$i]) << 16; $output .= $itoa64[($value >> 12) & 0x3f]; if ($i++ >= 16) break; $output .= $itoa64[($value >> 18) & 0x3f]; } while ($i < 16); return "\$P\$D{$salt}{$output}"; } print createHash('123456', 'BHbxMfZw'); где 123456 - твой пароль, BHbxMfZw - соль
уже что то интересное) а можно ли хешировать пароль прям при регистрации чтоб пароль попадал в базу уже в том виде что проверяет авторизация?
не можно, а нужно, для этого хеширование и применяется, что бы не хранить пароли пользователей в открытом виде
а как мне это сделать с тем кодам что вы привели у меня ругается на hex2bin() в 5 строчке и как мне все это дело соединить даже и не знаю не когда не занимался таким делом(
спасибо за ответы можно еще один вопрос в каком файле происходит проверка авторизации где проверяет пароль