БД. Нужна помощь!

895
.
wCoder
Здравствуйте!

Возникла у меня небольшая проблема. Кто может - помогите советом.

Есть у меня сайт. На нем 200 пользователей.
Есть БД к нему. В ней записаны данные о этих пользователях.
Из данных меня интересуют их пароли.
Все они храняться в незашифрованом виде.


В чем проблема?
Я хочу поменять скрипт. БД нового скрипта почти идентичная, но запись паролей в нее идет в зашифрованном виде.

Подключал к новому скрипту старую (с голыми паролями) БД, но тут беда!
Авторизация невозможна! Так как пароли должныбыть зашифрованными.

Кто знает, как можно пароли в базе перевести в хеши?
Можно ли вообще это проделать?
Может быть есть како-нибудь запрос?
.
wCoder (03.07.2012/13:24)
Здравствуйте!

Возникла у меня небольшая проблема. Кто может - помогите советом.

Есть у меня сайт. На нем 200 пользователей.
Есть БД к нему. В ней записаны данные о этих пользователях.
Из данн
Скрипт пиши, который пройдет по всем записям.
.
Onatolich, Я так понимаю, это надо вытягивать каждый пароль, шифровать и потом обновлять запись?
.
Lestat, Нет. Не Джон.

Сайт клик-клуб.
.
Lestat, md5
.
Lestat, Как определить, двойной, или нет?
.
Lestat, В старом скрипте данные заносятся без использования шифрования.

Шифрование идет в новом!
.
Вот код из файла регистрации:

$pid=mysql_escape_string($_REQUEST[pid]);


If (!isset($_GET['mode']) || !ereg("^[a-z0-9_-]{1,15}$",$_GET['mode'])) $mode=false; else $mode=$_GET['mode'];

switch ($mode){
case 'ok':
//поверхностная проверка введённых данных:
$error=array();
If (!isset($_POST['login']) || !$click_club->is_login($_POST['login']))
$error[]="<b>Логин</b> введён неверно!<br/>
-&gt;Длина: ".min_login."-".lenght_login."<br/>
-&gt;Разрешены ТОЛЬКО английские буквы, цифры и символы _.-";

/*If (!isset($_POST['password']) || !$click_club->is_password($_POST['password']))
$error[]="<b>Пароль</b> введён неверно!<br/>
-&gt;Длина: ".min_password."-".lenght_password."<br/>
-&gt;Разрешённые символы:".$_EREG['password']; */
$password = $_POST['password'];
if(preg_match("/[^0-9a-zA-Z_]+/",$password)) $error[] = "В пароле содержаться недопустимые символы!<br />";
$strlen=strlen($_POST['password']);
If ($strlen<min_password || $strlen>lenght_password) $error[] = "Слишком длинный или короткий пароль<br/>
Длина: ".min_password."-".lenght_password."<br />";

If (!isset($_POST['mail']) || !$click_club->is_mail($_POST['mail']))
$error[]="<br /><b>E-mail</b> введён неверно!<br/>
-&gt;Длина: ".min_mail."-".lenght_mail;

/*
If (!isset($_POST['many']))
$error[]="<b>Кошелёк</b> введён неверно!<br/>
-&gt;Длина: 12 символов ";
else {
$_POST['many']=strip_tags($_POST['many']);
$strlen=strlen($_POST['many']);
If ($strlen<12 || $strlen>12)$error[]="<b>Кошелёк</b> введён неверно!<br/>
-&gt;Длина: 12 символов";
}

If (!empty($_POST['wmid']))
{
$_POST['wmid']=strip_tags($_POST['wmid']);
$strlen=strlen($_POST['wmid']);
If ($strlen<12 || $strlen>12)$error[]="<b>wmid</b> введён неверно!<br/>
-&gt;Длина: 12 символов";
} */

if(empty($_POST['code']) || $_POST['code']!=$_SESSION['code'])
$error[]='<br /><b>Проверочный код</b> введён не верно или не введён вообще!<br />';

$count=count($error);
If ($count>0){
echo '<div class="menuindexom">При заполнении формы допущены ошибки.<br/>';
for ($i=0;$i<$count;$i++) echo $error[$i]."";
echo '</div>';
break;
}
//проводим регистрацию
$result=@mysql_query("SELECT `login` FROM `".prefix."users` WHERE `login`='".mysql_real_escape_string($_POST['login'])."'
");
If (!$result){
echo '<div class="menuindexom">Регистрация НЕ завершена.<br/>Логин должен состоять из цифр и букв латинского алфавита</div>';
break;
}

If (mysql_num_rows($result)){
echo '<div class="menuindexom">Логин уже занят!</div>';
break;
}

//проводим регистрацию
$result=@mysql_query("SELECT `mail` FROM `".prefix."users` WHERE `mail`='".mysql_escape_string($_POST['mail'])."'
");

If (mysql_num_rows($result)!=0){
echo '<div class="menuindexom">На этот e-mail уже зарегистрирован аккаун!</div>';
break;
}

If ($_POST['login']==Admin) $admin=1; else $admin=0;

$bonusd=@mysql_query("SELECT * FROM `nastroyki` where `id`='1';");
$rowd=mysql_fetch_array($bonusd);
$bonus=$rowd['bonus'];

$result=@mysql_query("INSERT INTO `".prefix."users`
(`login`,`password`,`mail`,`ts` ,`cto` ,`cfrom` ,`ip`, `ua`,`admin`,`pid`,`bank`,`many`,`wmid`)
values
('".mysql_real_escape_string($_POST['login'])."','".mysql_real_escape_string(md5($_POST['password']))."','".mysql_real_escape_string($_POST['mail'])."','".time()."','0','0','".ip."','".short_agent."','".$admin."','".mysql_real_escape_string($pid)."','".$bonus."','".mysql_real_escape_string($_POST['many'])."','".mysql_real_escape_string($_POST['wmid'])."')");

$result2=@mysql_query("INSERT INTO `users`
(`nick`,`money`,`in_money`,`out_money`,`wmr`)
values
('".mysql_real_escape_string($_POST['login'])."','0.0000','0','0','0')");

/*
mysql_query("INSERT into `".prefix."guest`
(`who`,`text`,`ts`,`ua`)
values
('Система','Приветствуем нового пользователя <b>".mysql_real_escape_string($_POST['login'])."</b>','".time()."','sekret') ");
*/
If (!$result){
echo '<div class="menuindexom">Регистрация НЕ завершена.<br/>Ошибка запроса к бд...</div>';
break;
}
If (!$result2){
echo '<div class="menuindexom">Регистрация НЕ завершена.<br/>Ошибка запроса к бд...</div>';
break;
}
echo '<div class="menuindexom">Вы успешно зарегистрированы!<br/>
Ваш логин: '.mysql_escape_string($_POST['login']).', пароль: '.mysql_escape_string($_POST['password']).'.<br/>
<a href="enter.php?login='.mysql_escape_string($_POST['login']).'&amp;password='.mysql_escape_string($_POST['password']).'">Войти в панель</a><br/>';
echo'</div>';

$replacement['{login}']=$_POST['login'];
$replacement['{password}']=$_POST['password'];

$head=convert_cyr_string(replacer($_mail['reg_head'],$replacement),"w","k");
$msg=convert_cyr_string(replacer($_mail['reg'],$replacement),"w","k");

@mail($_POST['mail'],$head,$msg,"From: ".email."
Content-type:text/plain; charset=koi8-r");

break;
case false:
default:
$_CONF['index_align']="center";

$_SESSION['code']=rand(0001,9999);

echo '<form method="post" action="reg.php?mode=ok">
<div class="menuindexom"><b>Логин</b> (только буквы и цифры латинского алфавита):<br/>

<input type="text" name="login" maxlength="'.lenght_login.'" value=""/><br/>
<b>Пароль</b> (только буквы и цифры латинского алфавита):<br/>
<input type="text" name="password" maxlength="'.lenght_password.'" value=""/><br/>
<b>Ваш E-Mail</b> (необходимо ввести существующий e-mail):<br/>
<input type="text" name="mail" maxlength="'.lenght_mail.'" value=""/><br/>
';
/*<b>Ваш R-кошелёк</b> без R ,(после регистрации не изменяется):<br/>
<input type="text" name="many" maxlength="12" value=""/><br/>

<b>Ваш WMID</b> (не обязательно):<br/>
<input type="text" name="wmid" maxlength="12" value=""/><br/> */
echo'
Код подтверждения [<font color="#f00000"><b>'.$_SESSION['code'].'</b></font>] : <br />
<input name="code" type="text" size="'.strlen($_SESSION['code']).'" maxlength="'.strlen($_SESSION['code']).'" /><br />
<input type="hidden" name="pid" value="'.htmlspecialchars($pid).'"/>
<input value="Регистрировать" type="submit"/>
</form> </div>
';
break;
}
.
$pid=mysql_escape_string($_REQUEST[pid]);


If (!isset($_GET['mode']) || !ereg("^[a-z0-9_-]{1,15}$",$_GET['mode'])) $mode=false; else $mode=$_GET['mode'];

switch ($mode){
case 'ok':
//поверхностная проверка введённых данных:
$error=array();
If (!isset($_POST['login']) || !$click_club->is_login($_POST['login']))
$error[]="<b>Логин</b> введён неверно!<br/>
 -&gt;Длина: ".min_login."-".lenght_login."<br/>
 -&gt;Разрешены ТОЛЬКО английские буквы, цифры и символы _.-";

/*If (!isset($_POST['password']) || !$click_club->is_password($_POST['password']))
$error[]="<b>Пароль</b> введён неверно!<br/>
 -&gt;Длина: ".min_password."-".lenght_password."<br/>
 -&gt;Разрешённые символы:".$_EREG['password'];   */
 $password = $_POST['password'];
if(preg_match("/[^0-9a-zA-Z_]+/",$password)) $error[] = "В пароле содержаться недопустимые символы!<br />";
$strlen=strlen($_POST['password']);
If ($strlen<min_password || $strlen>lenght_password) $error[] = "Слишком длинный или короткий пароль<br/>
Длина: ".min_password."-".lenght_password."<br />";

If (!isset($_POST['mail']) || !$click_club->is_mail($_POST['mail']))
$error[]="<br /><b>E-mail</b> введён неверно!<br/>
 -&gt;Длина: ".min_mail."-".lenght_mail;

   /*
 If (!isset($_POST['many']))
$error[]="<b>Кошелёк</b> введён неверно!<br/>
 -&gt;Длина: 12 символов ";
 else {
 $_POST['many']=strip_tags($_POST['many']);
 $strlen=strlen($_POST['many']);
 If ($strlen<12 || $strlen>12)$error[]="<b>Кошелёк</b> введён неверно!<br/>
 -&gt;Длина: 12 символов";
 }

  If (!empty($_POST['wmid']))
{
 $_POST['wmid']=strip_tags($_POST['wmid']);
 $strlen=strlen($_POST['wmid']);
 If ($strlen<12 || $strlen>12)$error[]="<b>wmid</b> введён неверно!<br/>
 -&gt;Длина: 12 символов";
 }   */

if(empty($_POST['code']) || $_POST['code']!=$_SESSION['code'])
   $error[]='<br /><b>Проверочный код</b> введён не верно или не введён вообще!<br />';

$count=count($error);
If ($count>0){
echo '<div class="menuindexom">При заполнении формы допущены ошибки.<br/>';
for ($i=0;$i<$count;$i++) echo $error[$i]."";
echo '</div>';
break;
}
//проводим регистрацию
$result=@mysql_query("SELECT `login` FROM `".prefix."users` WHERE `login`='".mysql_real_escape_string($_POST['login'])."'
");
If (!$result){
echo '<div class="menuindexom">Регистрация НЕ завершена.<br/>Логин должен состоять из цифр и букв латинского алфавита</div>';
break;
}

If (mysql_num_rows($result)){
echo '<div class="menuindexom">Логин уже занят!</div>';
break;
}

//проводим регистрацию
$result=@mysql_query("SELECT `mail` FROM `".prefix."users` WHERE `mail`='".mysql_escape_string($_POST['mail'])."'
");

If (mysql_num_rows($result)!=0){
echo '<div class="menuindexom">На этот e-mail уже зарегистрирован аккаун!</div>';
break;
}

If ($_POST['login']==Admin) $admin=1; else $admin=0;

$bonusd=@mysql_query("SELECT * FROM `nastroyki` where `id`='1';");
$rowd=mysql_fetch_array($bonusd);
$bonus=$rowd['bonus'];

$result=@mysql_query("INSERT INTO `".prefix."users`
(`login`,`password`,`mail`,`ts` ,`cto` ,`cfrom` ,`ip`, `ua`,`admin`,`pid`,`bank`,`many`,`wmid`)
values
('".mysql_real_escape_string($_POST['login'])."','".mysql_real_escape_string(md5($_POST['password']))."','".mysql_real_escape_string($_POST['mail'])."','".time()."','0','0','".ip."','".short_agent."','".$admin."','".mysql_real_escape_string($pid)."','".$bonus."','".mysql_real_escape_string($_POST['many'])."','".mysql_real_escape_string($_POST['wmid'])."')");

$result2=@mysql_query("INSERT INTO `users`
(`nick`,`money`,`in_money`,`out_money`,`wmr`)
values
('".mysql_real_escape_string($_POST['login'])."','0.0000','0','0','0')");

/*
mysql_query("INSERT into `".prefix."guest`
(`who`,`text`,`ts`,`ua`)
values
('Система','Приветствуем нового пользователя <b>".mysql_real_escape_string($_POST['login'])."</b>','".time()."','sekret') ");
    */
If (!$result){
echo '<div class="menuindexom">Регистрация НЕ завершена.<br/>Ошибка запроса к бд...</div>';
break;
}
 If (!$result2){
echo '<div class="menuindexom">Регистрация НЕ завершена.<br/>Ошибка запроса к бд...</div>';
break;
}
echo '<div class="menuindexom">Вы успешно зарегистрированы!<br/>
Ваш логин: '.mysql_escape_string($_POST['login']).', пароль: '.mysql_escape_string($_POST['password']).'.<br/>
<a href="enter.php?login='.mysql_escape_string($_POST['login']).'&amp;password='.mysql_escape_string($_POST['password']).'">Войти в панель</a><br/>';
echo'</div>';

$replacement['{login}']=$_POST['login'];
$replacement['{password}']=$_POST['password'];

$head=convert_cyr_string(replacer($_mail['reg_head'],$replacement),"w","k");
$msg=convert_cyr_string(replacer($_mail['reg'],$replacement),"w","k");

@mail($_POST['mail'],$head,$msg,"From: ".email."
Content-type:text/plain; charset=koi8-r");

break;
case false:
default:
$_CONF['index_align']="center";

$_SESSION['code']=rand(0001,9999);

echo '<form method="post" action="reg.php?mode=ok">
<div class="menuindexom"><b>Логин</b> (только буквы и цифры латинского алфавита):<br/>

<input type="text" name="login" maxlength="'.lenght_login.'" value=""/><br/>
<b>Пароль</b> (только буквы и цифры латинского алфавита):<br/>
<input type="text" name="password" maxlength="'.lenght_password.'" value=""/><br/>
<b>Ваш E-Mail</b> (необходимо ввести существующий e-mail):<br/>
<input type="text" name="mail" maxlength="'.lenght_mail.'" value=""/><br/>
  ';
/*<b>Ваш R-кошелёк</b> без R ,(после регистрации не изменяется):<br/>
<input type="text" name="many" maxlength="12" value=""/><br/>

<b>Ваш WMID</b> (не обязательно):<br/>
<input type="text" name="wmid" maxlength="12" value=""/><br/>   */
   echo'
Код подтверждения [<font color="#f00000"><b>'.$_SESSION['code'].'</b></font>] : <br />
<input name="code" type="text" size="'.strlen($_SESSION['code']).'" maxlength="'.strlen($_SESSION['code']).'" /><br />
<input type="hidden" name="pid" value="'.htmlspecialchars($pid).'"/>
<input value="Регистрировать" type="submit"/>
</form> </div>
';
break;
}
.
Не тот тег пихнул был
Всего: 34