Htaccess php crypt(): bijection?
Résolu
ataos
Messages postés
72
Date d'inscription
Statut
Membre
Dernière intervention
-
kincus Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
kincus Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Alors voilà, je code un petit site pour mon plaisir, et j'en suis au moment où je protège mon script de connexion mysql dans un dossier verrouillé par un htaccess + htpasswd ... Sauf que...
1- Lorsque j'utilise le code de m@teo ou un autre pour coder mon mot de passe, il me génère une ligne à mettre dans mon htpasswd. ok.
2- Lorsque j'essaye d'acceder au dossier, il me demande le mot de passe, je le tape en clair dans le formulaire, et ça ne marche pas. Je me renseigne sur google, et je vois de ci de là, que sur wamp en local ça marche pas top (surement faut-il activer something). Ok
2(bis)- Je rajoute donc une ligne avec un mot de passe en claire, et ça marche. Youpi.
3-J'envoie le tout sur mon ftp, je change le 'chemin' dans le htaccess, et là, que je tape le code en clair, ou en codé, ça ne marche jamais.
4-Je fais un 'encryptage' depuis mon hébergeur (des fois qu'ils n'aient pas la même version du chaudron magique que moi) et je récupère pour le même mot de passe, une nouvelle ligne. Je me dit cool j'y suis presque.... Sauf que non.
5-Si je fais x fois la manipulation, je récupère x lignes différentes.... Alors ma question:
Pourquoi:
1- Ca marche pas?
2- Un même mot ne donne pas toujours le même code encrypté?
Merci d'avoir lu tout ça. :)
Hourra à celui qui résoudra mon problème. :D
PS: apparemment mon hébergeur accepte que les mdp soient codés.
Alors voilà, je code un petit site pour mon plaisir, et j'en suis au moment où je protège mon script de connexion mysql dans un dossier verrouillé par un htaccess + htpasswd ... Sauf que...
1- Lorsque j'utilise le code de m@teo ou un autre pour coder mon mot de passe, il me génère une ligne à mettre dans mon htpasswd. ok.
2- Lorsque j'essaye d'acceder au dossier, il me demande le mot de passe, je le tape en clair dans le formulaire, et ça ne marche pas. Je me renseigne sur google, et je vois de ci de là, que sur wamp en local ça marche pas top (surement faut-il activer something). Ok
2(bis)- Je rajoute donc une ligne avec un mot de passe en claire, et ça marche. Youpi.
3-J'envoie le tout sur mon ftp, je change le 'chemin' dans le htaccess, et là, que je tape le code en clair, ou en codé, ça ne marche jamais.
4-Je fais un 'encryptage' depuis mon hébergeur (des fois qu'ils n'aient pas la même version du chaudron magique que moi) et je récupère pour le même mot de passe, une nouvelle ligne. Je me dit cool j'y suis presque.... Sauf que non.
5-Si je fais x fois la manipulation, je récupère x lignes différentes.... Alors ma question:
Pourquoi:
1- Ca marche pas?
2- Un même mot ne donne pas toujours le même code encrypté?
Merci d'avoir lu tout ça. :)
Hourra à celui qui résoudra mon problème. :D
PS: apparemment mon hébergeur accepte que les mdp soient codés.
A voir également:
- Htaccess php crypt(): bijection?
- Easy php - Télécharger - Divers Web & Internet
- True crypt - Télécharger - Chiffrement
- Expert php pinterest - Télécharger - Langages
- Crypt pad - Télécharger - Suite bureautique
- Php alert - Forum PHP
7 réponses
Pour crypter en PHP il vaut mieux utiliser mcrypt, voici un petit tutoriel :
http://www.finalclap.com/tuto/php-cryptage-aes-chiffrement-85/
http://www.finalclap.com/tuto/php-cryptage-aes-chiffrement-85/
bonsoir,
htpassword n'accepte pas les mots de passe codé en local. (idem avec easy Php)
quand au cryptage cela dépend de la clé (monsite dans l'exemple ci dessous
$pass =crypt('root','monsite');
htpassword n'accepte pas les mots de passe codé en local. (idem avec easy Php)
quand au cryptage cela dépend de la clé (monsite dans l'exemple ci dessous
$pass =crypt('root','monsite');
Merci, mais pour l'instant j'en suis au même point.
Une question me taraude: Comment le serveur peut-il savoir quelle clé j'ai utilisée?
J'ai codé ta solution comme ceci: $pass_crypte = crypt('root','$_POST["pass"]');
Surtout! Pourquoi même lorsque mon mdp est en clair dans le htpasswd cela ne marche-t-il toujours pas?
Je vais cherché du codé de l'encodage de mon fichier crypte.php. Peut être que le post est faussé.
A tout de suite.
Une question me taraude: Comment le serveur peut-il savoir quelle clé j'ai utilisée?
J'ai codé ta solution comme ceci: $pass_crypte = crypt('root','$_POST["pass"]');
Surtout! Pourquoi même lorsque mon mdp est en clair dans le htpasswd cela ne marche-t-il toujours pas?
Je vais cherché du codé de l'encodage de mon fichier crypte.php. Peut être que le post est faussé.
A tout de suite.
non c'est pas ça
mais c'est ma faute l'exemple n'est pas bien choisi.
$pass_crypte = crypt('$_POST["pass"], 'clé de cryptage');;
ci joint un code qui fonctionne
<html>
<head>
<link rel="stylesheet" type="text/css" href="../css/sage.css" media="all">
<title>Administration</title>
</head>
<?php
if (isset($_POST['login']) AND isset($_POST['pass']))
{
if ($_POST['login']=='' or $_POST['pass']=='') {
echo "Login ou mot de passe non renseigné";
}
else {
$login = $_POST['login'];
$pass_crypte = crypt($_POST['pass']); // On crypte le mot de passe
// vérifier si le login n'existe pas en table
$existe= false;
if (!$fp = fopen(".htpasswd","r")) {
echo "Echec de l'ouverture du fichier";
exit;
}
else {
$i=0;
while(!feof($fp)) {
// On récupère une ligne
$ligne = fgets($fp,255);
$zone = explode(':',$ligne);
if ($login == $zone['0']) $existe=true;
}
fclose($fp); // On ferme le fichier
}
if (!$existe) {
$fp = fopen(".htpasswd","a"); // ouverture du fichier en écriture
$ligne = $login . ':' . $pass_crypte;
fputs($fp, $ligne);
fputs($fp,"\n");
fclose($fp);
echo "<table width='33%'><tr><td><fieldset> <legend>Ajout d'un membre</legend>";
echo "<br>L'utilisateur : ".$login." a été ajouté";
echo "</td></fieldset></tr></table>";
}
else {
echo "<table width='33%'><tr><td><fieldset> <legend>Ajout d'un membre</legend>";
echo "<br>L'utilisateur : ".$login." <font color='red'>existe déjà</font> comme membre";
echo "</td></fieldset></tr></table>";
}
}
?>
<form action='menu.php' name='retour' ><input type=submit value='retour'></form>
<?php
}
?>
</html>
mais c'est ma faute l'exemple n'est pas bien choisi.
$pass_crypte = crypt('$_POST["pass"], 'clé de cryptage');;
ci joint un code qui fonctionne
<html>
<head>
<link rel="stylesheet" type="text/css" href="../css/sage.css" media="all">
<title>Administration</title>
</head>
<?php
if (isset($_POST['login']) AND isset($_POST['pass']))
{
if ($_POST['login']=='' or $_POST['pass']=='') {
echo "Login ou mot de passe non renseigné";
}
else {
$login = $_POST['login'];
$pass_crypte = crypt($_POST['pass']); // On crypte le mot de passe
// vérifier si le login n'existe pas en table
$existe= false;
if (!$fp = fopen(".htpasswd","r")) {
echo "Echec de l'ouverture du fichier";
exit;
}
else {
$i=0;
while(!feof($fp)) {
// On récupère une ligne
$ligne = fgets($fp,255);
$zone = explode(':',$ligne);
if ($login == $zone['0']) $existe=true;
}
fclose($fp); // On ferme le fichier
}
if (!$existe) {
$fp = fopen(".htpasswd","a"); // ouverture du fichier en écriture
$ligne = $login . ':' . $pass_crypte;
fputs($fp, $ligne);
fputs($fp,"\n");
fclose($fp);
echo "<table width='33%'><tr><td><fieldset> <legend>Ajout d'un membre</legend>";
echo "<br>L'utilisateur : ".$login." a été ajouté";
echo "</td></fieldset></tr></table>";
}
else {
echo "<table width='33%'><tr><td><fieldset> <legend>Ajout d'un membre</legend>";
echo "<br>L'utilisateur : ".$login." <font color='red'>existe déjà</font> comme membre";
echo "</td></fieldset></tr></table>";
}
}
?>
<form action='menu.php' name='retour' ><input type=submit value='retour'></form>
<?php
}
?>
</html>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ha oue c fou. j'avais juste la première partie du code. J'ai du zapper une page dans le tuto. Quelle honte. Je teste et je te dis ça.
Mort de rire, je passe de 4 ligne à tout un script. Mais du coup, en le lisant, tout me semble plus 'compréhensible'.
EDIT: Bon en fait, je ne sais pas si je vais utiliser ton code. Enfin, peut être quant je serais devenu grand. Mais pour l'instant j'aimerai juste utiliser le code de "base". (à moins que j'ai définitivement raté une étape).
Donc voici pour mon htaccess:
AuthName "Page d'administration protégée"
AuthType Basic
AuthUserFile "/home/mon_nom_de_clien/public_html/config_php/.htpasswd"
Require valid-user
Pour mon htpasswd:
ataos:yoDfFJ4ACOjEw
high:yoDfFJ4ACOjEw
(Nottons que je suis au moins content qu'un même mot donne le même code crypté. Tu auras au moins levé ce mystère là. :D)
Mort de rire, je passe de 4 ligne à tout un script. Mais du coup, en le lisant, tout me semble plus 'compréhensible'.
EDIT: Bon en fait, je ne sais pas si je vais utiliser ton code. Enfin, peut être quant je serais devenu grand. Mais pour l'instant j'aimerai juste utiliser le code de "base". (à moins que j'ai définitivement raté une étape).
Donc voici pour mon htaccess:
AuthName "Page d'administration protégée"
AuthType Basic
AuthUserFile "/home/mon_nom_de_clien/public_html/config_php/.htpasswd"
Require valid-user
Pour mon htpasswd:
ataos:yoDfFJ4ACOjEw
high:yoDfFJ4ACOjEw
(Nottons que je suis au moins content qu'un même mot donne le même code crypté. Tu auras au moins levé ce mystère là. :D)
Bon, voici comment j'ai réussi (même si je ne suis pas sur d'avoir compris la différence avec ce que j'ai pu faire avant).
1-Vérifier que le transfert de filezilla est en 'type de transfert ASCII'
2-Aller générer une clé avec 'salage' ici (https://www.webmaster-hub.com/publications/le-fichier-htaccess/
3-Uploader le tout.
1-Vérifier que le transfert de filezilla est en 'type de transfert ASCII'
2-Aller générer une clé avec 'salage' ici (https://www.webmaster-hub.com/publications/le-fichier-htaccess/
3-Uploader le tout.