создания аккаунта на сайте

Aslan

Знаменитый
Пользователь
Сообщения
70
Розыгрыши
0
Репутация
32
Реакции
4
Баллы
1 260
Вообщем пишу свой небольшой веб интерфейс где можно создать аккаунт.
Что надо дернуть что бы в базу ложился хэшированый пароль? отправлять какие то пакетикт на логин сервер или надо прями писать в базу?
 
Код:
<?php 
include("credentials.php"); 
$fsname = $_SERVER['SCRIPT_NAME']; 
$msconn = mysql_connect($dbhost.":".$dbport, $dbuser, $dbpass) or die ("Не удалось установить соединение с БД"); 
MYSQL_SELECT_DB($dbname) or die ("Не удалось установить соединение с БД"); 
$way = (int)$_GET[step];
if ($way == 0){ 
echo ('<form name="form1" method="post" action="'.$fsname.'?step=2"> 
<div align="center"> 
<table width="266" border="0" cellspacing="0" cellpadding="0"> 
<tr> 
<td width="105" align="right">Логин</td> 
<td width="161"><label> 
<input name="login" type="text" id="login1"> 
</label></td> 
</tr> 
<tr> 
<td align="right">Пароль</td> 
<td><label> 
<input name="pass" type="password" id="pass"> 
</label></td> 
</tr> 
<tr> 
<td align="right">Повтор</td> 
<td><label> 
<input name="repeat" type="password" id="repeat"> 
</label></td> 
</tr> 
<tr> 
<td align="right">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td> 
<td align="center"><label> 
<input type="submit" name="Submit" value="Регистрация"> 
</label></td> 
</tr> 
</table> 
</div> 
</form> 
<p>&nbsp;</p> 
'); 
} 
$way = (int)$_GET[step];
if ($way == 2){ 
$login = strtolower(addslashes($_POST[login])); 
$pass = addslashes($_POST[pass]); 
$pass2 = addslashes($_POST[repeat]);
if ($login == "" or ctype_alnum($login) == false) { 
echo ("<center>Введенное значение <font color=red>не</font> может быть логином.</center>"); 
}else{ 
if ($pass == "" or ctype_alnum($pass) == false) { 
echo ("<center>Введенное значение <font color=red>не</font> может быть паролем.</center>"); 
}else{ 
if ($pass == $pass2) { 
$q = mysql_query("SELECT * FROM accounts WHERE login='{$login}'"); 
if(!mysql_numrows($q) > "0") { 
$gamepass = base64_encode(pack("H*", sha1(utf8_encode($pass)))); 
mysql_query("INSERT INTO accounts(login, password, lastactive, access_level) VALUES('$login' , '$gamepass', '$lastactive', '0')"); 
echo ("<center>Аккаунт <font color='red'>".$login."</font> успешно зарегистрирован</center>"); 
} else { 
echo ("<center>Имя <font color='red'>".$login."</font> уже зарегистрировано, попробуйте другое.</center>"); 
} 
}else { 
echo ("<center>Пароли не совпадают</center>"); 
} 
} 
} 
}
?>
Вот из этого дерни что надо
 
какой алгоритм
 
Я пишу на ASP.NET Core (C#)
 
Какой ужас. Хоть бы форматирование было а не вырви глаз

И да mysql чистый же старо. В 7ой версии это вырезали
 
Да я ж не сам писал, загуглил человеку и скинул)
 
На всех сборках одинаковый алгоритм хэша,
 
я сделал так.
PHP:
/**
     * @param $user
     * @param $password
     * @return bool
     */
    public function Login($user, $password)
    {
        $hash_pass = $this->HashPassword($password);

        $row = DB::run('SELECT * FROM accounts WHERE login=? AND password=?', [$user, $hash_pass]);
        if ($row->rowCount() > 0) {
            $bank = DB::run('SELECT id FROM casino_bank WHERE account=?',[$user]);
            if($bank->rowCount() == 0)
            {
                DB::run('INSERT INTO casino_bank VALUES (null,?,0,0)',[$user]);
            }
            return true;
        }
        return false;
    }
 
упс нето скопировал. Но тоже пригодится)