PHP

Cryptage en SHA256

Résolu

Bonsoir tous le monde,


Je me tourne vers la communauté, même si ce n'est pas mon genre de demander de l'aide, pour vous demander donc une aide au niveau d'un codage un peu spécial.


Explication :


J'essaie en gros, de créer un système d'inscription (je test en local) pour relier mon site web à mon jeu directement.

Cependant, le mot de passe est crypté en SHA256, avec un SALT. Dans ma table users, j'ai donc un champs Salt, et un Password.

Je n'ai jamais utilisé vraiment ce cryptage la, mais voici le code que j'ai pu faire.


Explication du problème :


Le problème est que sa s'enregistre bien dans la base de donnée, mais lors ce que je lance mon client.exe de mon jeu, celui-ci me dit que le mot de passe ne semble pas être bon. Suite à ça, je pense donc que le mot de passe est peut être mal crypté.

  • Il faut savoir que le mot de passe doit être hachez en clair avec SHA256 et supprimez tous les tirets résultants dans la sortie.
  • Il faut concatiner le sel au mot de passe et utilisez un hachage SHA256 sur le résultat en supprimant à nouveau les tirets dans la sortie résultante.


Exemple du résultat de cryptage dans la table :


Champ Salt :

65B755C0E59A5F61CD7FBF9816F36E14D8F011B022404EC7D0B3A4081BA63B62

Champ Password :

356D78E62A5B7324419751056BE16CC1F65FA56830107C920E763D5184DF3568


Code de la page register.php :


<?php
	include('config.php');
	include('function_uid.php');
	
	if(isset($_POST['forminscription'])) {
		$id = gen_uuid();
		
		$pseudo = $_POST['Name'];
		
		$pass = hash('sha256', $_POST['Password']);
		$password = mb_strtoupper($pass, 'UTF-8');
		
		$salt = bin2hex(random_bytes(64));
		$salt_mdp = hash('sha256', $pass.$salt);
		$salt_final = mb_strtoupper($salt_mdp, 'UTF-8'); 
		
		$sql = "INSERT INTO users (Id, Name, Salt, Password) VALUES (?,?,?,?)";
		$stmt= $SQL_PLAYER->prepare($sql);
		$stmt->execute([$id, $pseudo, $salt_final, $password]);
		
		echo $password.'<br />';
		
		echo $salt_final.'<br />'echo 'Votre uid: '.$id.' <br />';
		echo 'Votre pseudo: '.$pseudo.' <br />';
		echo 'Votre mot de passe: '.$password.' <br />';
		
		
	}
?>
	<form method="POST">
		<strong>Nom de compte:</strong> <br />
			<input type="text" name="Name" /> <br />
		<strong>Mot de passe:</strong> <br />
			<input type="password" name="Password" /> <br />
			<input style="margin-top:10px;" type="submit" name="forminscription" value="Valider le formulaire d'inscription">
	</form>
	


Voilà, donc si une ou plusieurs personnes seraient m'aider pour voir et corriger mon code afin que le compte dans la table users soit bien lu dans mon client.exe, ce serait sympa de votre part.


Bonne soirée à tous, et merci d'avance.

646 vues
10 avril 2020 à 23:43 (Édité)
Cette pub permet au site de vivre ...

8 commentaires

@Jerem971 : Merci pour ton aide ;). Je vais faire autrement, c'est-à-dire voir pour utiliser l'API du moteur de mon jeu (même si je n'aime pas les systèmes d'API car jamais compris comment cela fonctionne mais bon la je pense que je n'ai tous simplement pas le choix haha :P)


Encore merci pour votre aide ^^

Re:


N'hésite pas à nous dire si les deux liens ne t'ont pas aider et si tu as toujours besoin d'aide 😉

Re @Jerem971,


Merci pour ton aide, je vais regarder les deux liens que tu as trouvés ^^

Re:


J'ai cherché en anglais cette fois-ci et je suis tombé sur ce topic 😉

Après je sais pas s'il pourra t'aider... 😓

J'ai également trouvé ce tutoriel 😉

Mais je ne sais pas s'il pourra t'aider aussi... 😅

@Jerem971 : Je suis déjà tombé sur ce cours d'OpenClassRoom quand j'ai fais mes recherches sur google, il m'a un peu aidé, d'ailleurs mon code est basé sur ce cours la du coup, mais j'ai toujours le problème même en lisant, relisant et re-relisant ce cours ^^'..


Je vais ré-essayer plusieurs choses de mon côté, et voir comment faire pour que ça ne me bloque plus ce système x)

Hello @Alexoune001,


Je ne sais pas si ce cours d'OpenClassrooms pourrait t'aider... 🧐

@Clouder De mon site web vers mon jeu ;)

En gros les joueurs devront s'inscrire prochainement sur mon site web, pour avoir leur compte créé sur le serveur de mon jeu.

Le Hash256 vient de mon jeu en gros, les mots de passes sont cryptés en sha256 avec un salt, et je dois réussir à faire pareil mais en PHP du coup ^^

@Alexoune001,


Tu essaies de relier les comptes de ton site vers ton jeu ou de ton jeu vers ton site ?


Je m'explique,

Dans ton jeu les joueurs ont déjà un compte (login et / ou mail) + mot de passe comme sur ton site ?

Donc si tu souhaites relier les deux il faut que tu partes d'abord de l’algorithme de ton jeu avant de te lancer dans les inscriptions sur ton site.

Cette pub permet au site de vivre ...