Notice: crypt()

Résolu/Fermé
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 - 27 mai 2018 à 20:50
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 - 28 mai 2018 à 18:58
Bonjour,
J'ai un fichier .htpasswd qui donne accès à un site. Cela fonctionne bien mais j'ai une erreur. Si vous pouvez me dire pourquoi, je vous remercie.
Notice: crypt(): No salt parameter was specified. You must use a randomly generated salt and a strong hash function to produce a secure hash. in

Voici le script de ma page.
$submit 	= !empty($_POST['submit']) ? $_POST['submit'] : NULL;
	echo '<h1>Donner accès Partitions</h1>';

	if($submit) {
		$login  = trim($_POST["login"]);
		$passwd = trim($_POST["passwd"]);

		// Ecrire dans le fichier des mots de passe
		$hf = fopen("/home/cliquede/partitions/.htpasswd","a+");
		fwrite($hf,"$login:".crypt("$passwd")."\n");
		fclose($hf);
	}

	echo '<form name="setmdp" method="post" action="'.$_SERVER["PHP_SELF"].'" onsubmit="return verif();">';
	echo '<table cellspacing="0" cellpadding="0">';
	echo '<tr><td class="libel">login</td><td class="sais"><input type="text" name="login"></td></tr>';
	echo '<tr><td class="libel">password</td><td class="sais"><input type="text" name="passwd"></td></tr>';
	echo '<tr><td class="libel"> </td><td class="sais"><input type="submit" name="submit" value="Enregistrer" style="margin-top:5px"></td></tr>';
	echo '</table>';
	echo '</form>';

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
27 mai 2018 à 22:42
C'est un "notice" donc juste pour prévenir.
Dans l'idéal il faut, comme spécifié dans le message d'erreur, ajouter un SALT.
Il suffit de lire la doc pour savoir comment faire : https://www.php.net/manual/fr/function.crypt.php
0
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 32
28 mai 2018 à 18:58
Bonjour
J'ai essayé de m'inspirer du lien, déjà plus d'erreur mais je ne suis pas sur de moi, pouvez-vous me donner votre avis.
Je vous remercie
	if($submit) {
		$login  	= trim($_POST["login"]);
		$passwd 	= trim($_POST["passwd"]);
		$user_input = 'f?,j89-k0.;-!?lqjçs_di3%5a6_4jhfgh';
		$pass_crypt = crypt($passwd, $user_input);
		// Ecrire dans le fichier des mots de passe
		$hf = fopen("/home/cliquede/partitions/.htpasswd","a+");
		fwrite($hf,"$login: $pass_crypt\n");
		fclose($hf);
	}
0