Htaccess php crypt(): bijection?

Résolu/Fermé
ataos Messages postés 72 Date d'inscription vendredi 11 avril 2008 Statut Membre Dernière intervention 6 août 2012 - 13 oct. 2009 à 17:38
kincus Messages postés 8 Date d'inscription jeudi 14 mars 2013 Statut Membre Dernière intervention 14 mars 2013 - 14 mars 2013 à 19:53
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.
A voir également:

7 réponses

kincus Messages postés 8 Date d'inscription jeudi 14 mars 2013 Statut Membre Dernière intervention 14 mars 2013 59
14 mars 2013 à 19:53
Pour crypter en PHP il vaut mieux utiliser mcrypt, voici un petit tutoriel :
http://www.finalclap.com/tuto/php-cryptage-aes-chiffrement-85/
3
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
13 oct. 2009 à 17:45
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');
0
ataos Messages postés 72 Date d'inscription vendredi 11 avril 2008 Statut Membre Dernière intervention 6 août 2012
13 oct. 2009 à 18:04
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.
0
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
13 oct. 2009 à 18:20
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>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ataos Messages postés 72 Date d'inscription vendredi 11 avril 2008 Statut Membre Dernière intervention 6 août 2012
13 oct. 2009 à 18:27
Je continue de chercher. Je peux mettre n'importe quoi dans la clé de cryptage?
0
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
13 oct. 2009 à 18:34
il faut mettre la même pour la vérification sinon mot de passe + clé ne donne pas la même chose.
0
ataos Messages postés 72 Date d'inscription vendredi 11 avril 2008 Statut Membre Dernière intervention 6 août 2012
13 oct. 2009 à 18:48
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)
0
ataos Messages postés 72 Date d'inscription vendredi 11 avril 2008 Statut Membre Dernière intervention 6 août 2012
13 oct. 2009 à 20:19
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.
0