Remplir .htpasswd avec base de données

nuts255 -  
 Pwoned -
Bonjour,
Nous avons décidé de protéger un des répertoires de notre site Internet.
Nous utilisons .htaccess et . htpasswd . Mais nous devons créer 200 comptes environs et je me vois mal en train de remplir ligne pas ligne et un par un le fichier .htpasswd.
J'ai un fichier excel comprenant le nom et le mot de passe des 200 abonnés.
Y a t il un moyen rapide de compléter le fichier .htpasswd ?
En fait ce qui me coince c'est le mot de passe crypté..
Merci
Configuration: Windows XP
Safari 530.5

13 réponses

  1. nuts255 Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   2
     
    Donc en clair..
    Je me crée une base de données SQL ..
    MAis alors comme je suis une b.... pour le PHP.. Tout le reste me parait, comment dire infaisable..
    Tu peux me donner le script entier ?
    Si tu ne peux pas .. Pas grave.. J'essaierai de me débrouiller !
    En tout cas Merci
    1
    1. Pwoned
       
      OK...
      Alors...
      Voici la base, il y aura peut-être des petites choses à changer selon ton serveur...
      <?php
      $connect = mysql_connect("monserveur.serveur.com", "monnomsql", "monpasssql");
      mysql_select_db("mabase", $connect);
      $res = mysql_query("SELECT login,pass FROM tableutilisateurs WHERE 1", $connect);
      while($tab = mysql_fetch_assoc($res))
      {
      echo($tab['login'].":".crypt($tab['pass'])."<br />\n");
      }
      mysql_free_result($res);
      ?>

      Ce script se connecte à ta base SQL (serveur monserveur.serveur.com, login SQL monnomsql, pass SQL monpasssql), choisit la base de données (base mabase), récupère les login/pass de tout le monde (dans la table tableutilisateurs, colonnes login/pass) et les affiche sur une page web sous la forme login:passcrypté.
      Il te suffit de faire un copier/coller de la page (pas sa source) et c'est bon.
      0
  2. Pwoned
     
    Bonjour,

    Tu parles d'une base de données ?

    Je vais partir du principe que tu en as une...

    Alors, un petit script en PHP permettra de générer le contenu du htpasswd :
    -conenxion à la base de données
    -requête pour obtenir tous les login/pass
    -une boucle qui parcours le tableau avec pour contenu : echo($lelogin.":"crypt($lepass)"<br />");

    Tu envoi ce script, tu le charge avec ton navigateur (beuark ! chrome !) et tu fais un copier/coller de la page dans ton htpasswd.
    0
  3. nuts255 Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   2
     
    Sérieusement
    Je te remercie...
    C'est super..
    Je vais essayer tout à l'heure
    @+
    0
  4. nuts255 Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   2
     
    Re bonsoir,
    J'ai un petit soucis dans le crytage du mot de passe.
    En fait le cryptage devrait etre en MD5.
    Sinon le script fonctionne
    Juste que le cryptage ne semble pas compatible
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Pwoned
     
    Salut,

    Désolé du retard...

    Tu as besoin de MD5 ? Il me semblait que APACHE demandait crypt(), mais bon...
    Pour le MD5, tu peux tout simplement utiliser la fonction md5().
    Elle fonctionne comme crypt(), mais retourne le hash MD5 du paramètre.

    Sinon, il existe aussi une fonction en PHP qui est chargée de hasher un texte selon l'algo de ton choix : la fonction hash().
    Utilisation :
    $monhash = hash($algo, $textedebase).
    Exemple :
    hash("sha256", $salut);
    retourne le hash SHA256 du texte contenu dans la variable $salut.

    Si tu utilise l'algo que je t'ai donné, tout ce que tu as a faire pour obtenir du MD5, c'est remplacer
    echo($tab['login'].":".crypt($tab['pass'])."<br />\n");
    par
    echo($tab['login'].":".md5($tab['pass'])."<br />\n");
    ou bien
    echo($tab['login'].":".hash("md5", $tab['pass'])."<br />\n");
    0
  7. nuts255 Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   2
     
    Merci pour ton aide
    Mais le problème persiste.
    En fait voici le genre de mot de passe que je veux créer
    Login : ABOUBI
    mdp : 65bs

    Normalement cela devrait être
    ABOUBI:W2/7ftYX8gFqY (fait avec un generateur de mdp d'un site internet)
    Et le script de la page me donne
    ABOUBI:$2a$05$aqEx9JVZC/SP5xW40pd8buVsDNoLum.ixaJgRzVMKwqGCj/aHVlAe

    Hors le mot de passe fournit par le génrateur de mdp du site fonctionne
    et pas l'autre
    Je te solicite encore un peu
    Merci
    0
    1. TheAS3Fan
       
      OK...
      Tu peux me donner l'adresse de ton générateur stp ?
      0
  8. Pwoned
     
    Devancé !

    Alors, oui, tu peux donner l'URL de ton générateur ?
    Histoire que je vois quel algo il utilise ?
    0
  9. nuts255 Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   2
     
    https://shop.alterlinks.com/htpasswd/passwd.php

    C'est un générateur md5 il parait d'apres l'administrateur réseau. Et c'est vrai que les mots de passes créent par ce générateur fonctionnent
    Va savoir !
    Merci
    0
  10. Pwoned
     
    Essaye de remplacer :
    echo($tab['login'].":".crypt($tab['pass'])."<br />\n");

    par :
    echo($tab['login'].":".crypt($tab['pass'],CRYPT_MD5)."<br />\n");

    Et dis-moi si les pass cryptés fonctionnent...
    0
  11. Pwoned
     
    Attends, je me suis trompé !

    en fait, essaye de remplacer par ça :
    echo($tab['login'].":".crypt($tab['pass'], CRYPT_STD_DES)."<br />\n");

    C'est le cryptage UNIX basé sur DES.

    C'est celui qui ne marche pas qui est basé sur MD5.

    D'après mes tests, les pass générés avec le DES standard sont similaires à ceux de ton générateur.
    0
  12. nuts255 Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   2
     
    C'est à n'y rien comprendre
    En fait la ligne suivante :
    echo($tab['login'].":".crypt($tab['pass'],CRYPT_MD5)."<br />\n");
    fonctionne

    Merci encore pour votre aide
    C'est super efficace
    0
  13. Pwoned
     
    Ben là, je dois dire que je suis surpris !

    Mais bon, au moins, ça a fini par marcher...

    dr ;)
    0