Remplir .htpasswd avec base de données

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. 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. 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. 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
    1. Sérieusement
      Je te remercie...
      C'est super..
      Je vais essayer tout à l'heure
      @+
      0
      1. 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
        1. 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
          1. 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. OK...
              Tu peux me donner l'adresse de ton générateur stp ?
              0
          2. Devancé !

            Alors, oui, tu peux donner l'URL de ton générateur ?
            Histoire que je vois quel algo il utilise ?
            0
            1. 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
              1. 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
                1. 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
                  1. Ben là, je dois dire que je suis surpris !

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

                    dr ;)
                    0