Aide en PHP pour création d'un site

Petit nouveau ! | 6 Messages

09 oct. 2018, 20:42

Bonjour,
J'ai un soucis, je ne sais pas comment hashé le mot de passe avec :
function mysql_old_password_hash($input, $hex = true)
{
  $nr = 1345345333; $add = 7; $nr2 = 0x12345671; $tmp = null;
  $inlen = strlen($input);
  for ($i = 0; $i < $inlen; $i++) {
    $byte = substr($input, $i, 1);
    if ($byte == ' ' || $byte == "\t") continue;
    $tmp = ord($byte);
    $nr ^= ((($nr & 63) + $add) * $tmp) + (($nr << 8) & 0xFFFFFFFF);
    $nr2 += (($nr2 << 8) & 0xFFFFFFFF) ^ $nr;
    $add += $tmp;
  }
  $out_a = $nr & ((1 << 31) - 1);
  $out_b = $nr2 & ((1 << 31) - 1);
  $output = sprintf("%08x%08x", $out_a, $out_b);
  if ($hex) return $output;
  return hex_hash_to_bin($output);


Pouvez vous m'aider à appliquer ce type de hashage sur $mdp svp
Voici mon code:
<?php
if(isset($_POST['inscrip']))
{
	if(!empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mdp']))
	{
		$pseudo = htmlspecialchars($_POST['pseudo']);
		$mail = htmlspecialchars($_POST['mail']);
		$mdp = md5($_POST['mdp']);

		
		$pseudolength =strlen($pseudo);
		if ($pseudolength >=4) 
		{
			include 'Include/database.php';
			global $db;

			$q = $db->prepare("INSERT INTO Player(PlayerID, Passwd) VALUES(:PlayerID, :Passwd)");
			$q->execute([
				'PlayerID' => $pseudo,
				'Passwd' => $mdp,

			]);

		}
		else
		{
			$_erreur = "Votre pseudo doit faire minimum 4 caractères !";
		}
	}
	else
	{
		$_erreur = "Tout les champs doivent être complétés !";
	}
}

?>
<!DOCTYPE html>
<link rel="stylesheet" type="text/css" href="index.css">
 <meta charset="utf-8" />
<head>
	</head>
<body>
	<div align="center">
		<h1>
			<img src="logo.png">
		</h1>
		<form method="POST" action="">
			<table>
				<tr>
					<td>
					<label for="pseudo"> Pseudo:
						</label>
					</td>
					<td>
						<input type="text" 
						placeholder="Votre pseudo" id="pseudo" 
						name="pseudo">
					</td>
				</tr>
				<tr>
					<td>
					<label for="mail"> Mail:
						</label>
					</td>
					<td>
						<input type="email" 
						placeholder="Votre mail" id="mail" 
						name="mail">
					</td>
				</tr>
				<tr>
					<td>
					<label for="mdp"> Mot de passe:
						</label>
					</td>
					<td>
						<input type="password" 
						placeholder="Votre mot de passe" id="mdp" 
						name="mdp">
					</td>
				</tr>
			</table>
			<input type="submit" name="inscrip" value="Je m'inscrit">
		</form>
		<?php 
		if (isset($_erreur)) 
		{
			echo $_erreur; 
		}
		?>
	</div>
	<nav class="menu">
		<ul>
    <li><a href="#Accueil">Accueil</a></li>
    <li><a href="#Apropos">À propos</a></li>
    <li><a href="#Contact">Contact</a></li>
  		</ul>
		</nav>
	</body>

</html>

Eléphant du PHP | 125 Messages

10 oct. 2018, 14:31

Pourquoi tu t’embêtes à le faire à la main.
Utilise sha1 ou md5.

Avatar du membre
Eléphanteau du PHP | 25 Messages

11 oct. 2018, 13:51

sha1 et md5, c'est pas sécurisé du tout.

crypt() avec hash+salage, tu veux dire?!