md5() разные значения

WMix

герр M:)ller
Партнер клуба
md5() разные значения

PHP:
// Ввод
$pass=gen_password();
$db->query("INSERT INTO admin_users  SET uid='".$_POST["uid"]."', passwort='".md5($pass)."'"); // gnZS4r
mail($_POST["email"],"SUBJEKT",reg_mail($_POST["uid"],$pass));


// Проверка
$USERDATA =  $db->GetRow("SELECT * FROM admin_users WHERE uid='".$_POST["UID"]."'");
if ($USERDATA["passwort"]==md5($_POST["PASS"])) {

//Bla Bla
}
проблемма в том что md5("gnZS4r") иногда даёт разные значения

с чем это может быть связанно??
 

young

Новичок
PHP:
<?php
$str = "gnZS4r";
$md5 = md5($str);
$diff = 0; $same = 0;
for ($i = 0; $i < 10000; $i++) {
	if (md5($str) != $md5) {
		$diff++;
	} else {
		$same++;
	}
}
echo "Совпали: ".$same."<br>";
echo "Не совпали: ".$diff."<br>";
?>
Совпали: 10000
Не совпали: 0
 

Crazy

Developer
Re: md5() разные значения

Автор оригинала: WMix
проблемма в том что md5("gnZS4r") иногда даёт разные значения
Верится, мягко говоря, с трудом. За все время у меня было ровно 0 таких случаев.
 

WMix

герр M:)ller
Партнер клуба
Верится, мягко говоря, с трудом. За все время у меня было ровно 0 таких случаев.
думаеш гдето в скрипте??

те. всегда должно быть одинаково?
 

WMix

герр M:)ller
Партнер клуба
2young
регестрация не идёт

а ещё раньше когда скрипт писал я в ручную вводил
PHP:
echo md5("pass");
и с экрана в базу

так я замечал такую вешь что md5 давалв то 1 потом другое значение потом вдруг опять первое
 

young

Новичок
2young
регестрация не идёт
Я к тому что очень многие люди во всем мире изсользуют md5 авторизацию. И пока еще из них никто не жаловался. Та что в md5 багов нет :)
 

WMix

герр M:)ller
Партнер клуба
спасибо
а я так хотел проблемку на сервак свалить :)
админа напрячь :)
теперь скрипт придётся анализировать
 

WMix

герр M:)ller
Партнер клуба
я так и не понял что я сделал
(включил вывод мд5 потом выключил)
работает

может как-то с session связанно и передовались другие данные
 

Varg

Guest
Однажды я столкнулся с похожей проблемой, но там было в одном месте "trailing whitespace" после считывания из файла. А при
echo $pass1 . "-" . $pass2; было незаметно :)
Это так. К слову.

Само собой trim(md5...) был всегда равен trim(md5(2)...)
Кривой код был :)
 
Сверху