Notice: crypt()

Résolu
LaChaux78 Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   -  
LaChaux78 Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 583 Date d'inscription   Statut Membre Dernière intervention   32
 
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