IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[FTP] Meilleure méthode d'encryption fichier de config


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Par défaut [FTP] Meilleure méthode d'encryption fichier de config
    Bonjour

    J'ai créé une application qui utilisera un fichier de configuration. Je veux que ce fichier soit crypté de manière à ce que les utilisateurs qui l'ouvriront ne voient pas le mot de passe pour la base de donnée et pour qu'ils ne puissent modifier son contenu.

    Quelle est la meilleure méthode, si possible sans mcrypt qui est, si j'ai bien comprise, une extension de PHP et non une fonction intégrée (corrigez moi si je me trompe ). Je dois, moi, être capable de le décrypté pour être en mesure de le modifier bien sur.

    Merci!

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Par défaut eh eh...
    salut,
    et bien alors, pour ce qui est de la modifiction du fichier, je pense qu'en lui mettant un attribut de lecture seulement cela devrai suffir.
    Pour ce qui est du mdp qui pourait etre AZERTY, tu peu par exemple le noyer dans un text du style EFEFEFDDSSAZERTYFDGQ2244FEef"4FZEFFFFFefsdf
    et le recuperer dans un script en mettant le text ds une variable $pass et recuperer ce dont tu à besoin avec la fonction substr par exemple
    voila une des multiples solutions, à vous de juger

  3. #3
    Fabouney
    Invité(e)
    Par défaut
    Moi je pense tout simplement qu'avec la librairie "mcrypt" tu hash ton password, avec une clé secrète que toi seul connait, et qui te permettera de "decrypter" le mot de pass pour l'utiliser.

    j'pense que cette méthode est optimale, après y'a tellement d'algorithme, etc moi persos je te conseil :

    algo : MCRYPT_RIJNDAEL_128 ou MCRYPT_RIJNDAEL_256

    en mode ECB

    Voila je te laisse regarder du coté de www.php.net pour la doc.

    Cordialement.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Par défaut
    Super merci

    Mais pour le lecture seulement, le problème d'affichage du mot de passe de la BD reste. C'est pour ca que je veux l'encrypté principalement mais aussi pour le rendre idiot proof

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par Prosis
    Mais pour le lecture seulement, le problème d'affichage du mot de passe de la BD reste.
    Quelle en est la raison ? Si des personnes ont accès à votre code source le problème sera le même car il sera possible en cherchant un minimum de retrouver l'algorithme. De plus, cette opération de chiffrage/déchiffrage demandera des opérations supplémentaires au serveur.

    Cependant, il ne faut pas oublier que le langage PHP étant interprété, le code des scripts n'est donc pas visible pour les clients (navigateurs généralement). Pour les autres fichiers, vous devriez au pire pouvoir les protéger à l'aide de fichier .htaccess (pour Apache en tout cas ).

    Pour ce qui est d'"encoder" son code source il y a différentes solutions (faire une recherche sur le forum Outils pour avoir une liste) et un article paru le mois dernier aborde le sujet avec l'extension bcompiler : http://maxime-ohayon.developpez.com/...els/bcompiler/

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 19
    Par défaut
    Le code suivant permet de faire la même chose qu'avec mcrypt, mais je pense en plus avancé.

    Par exemple : Forum d'entraide sur les fonctions PHP donne avec cette fonction "AUFXalByBicPNlEiATNSCF0rUGAGbwYgASNQOAA0BzMGZQZ0U3AOLwUjUSIBO1Q3UnAAdQFgUWxXaQJoXHUHPgFoV2tQcwZyDwtRSgEH".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <?php
     
    function GenerationCle($Texte,$CleDEncryptage) 
      { 
      $CleDEncryptage = md5($CleDEncryptage); 
      $Compteur=0; 
      $VariableTemp = ""; 
      for ($Ctr=0;$Ctr<strlen($Texte);$Ctr++) 
        { 
        if ($Compteur==strlen($CleDEncryptage))
          $Compteur=0; 
        $VariableTemp.= substr($Texte,$Ctr,1) ^ substr($CleDEncryptage,$Compteur,1); 
        $Compteur++; 
        } 
      return $VariableTemp; 
      } 
    /* *************************************************************************************************************** */
    function Crypte($Texte,$Cle) 
      { 
      srand((double)microtime()*1000000); 
      $CleDEncryptage = md5(rand(0,32000) ); 
      $Compteur=0; 
      $VariableTemp = ""; 
      for ($Ctr=0;$Ctr<strlen($Texte);$Ctr++) 
        { 
        if ($Compteur==strlen($CleDEncryptage)) 
          $Compteur=0; 
        $VariableTemp.= substr($CleDEncryptage,$Compteur,1).(substr($Texte,$Ctr,1) ^ substr($CleDEncryptage,$Compteur,1) ); 
        $Compteur++;
        } 
      return base64_encode(GenerationCle($VariableTemp,$Cle) );
      } 
    /* *************************************************************************************************************** */
    function Decrypte($Texte,$Cle) 
      { 
      $Texte = GenerationCle(base64_decode($Texte),$Cle);
      $VariableTemp = ""; 
      for ($Ctr=0;$Ctr<strlen($Texte);$Ctr++) 
        { 
        $md5 = substr($Texte,$Ctr,1); 
        $Ctr++; 
        $VariableTemp.= (substr($Texte,$Ctr,1) ^ $md5); 
        } 
      return $VariableTemp; 
      } 
    /* *************************************************************************************************************** */
    $Cle = "MotDePasseSuperSecret"; 
    $MonTexte = "Jocelyn est le plus beau du monde :)"; 
    $TexteCrypte = Crypte($MonTexte,$Cle); 
    $TexteClair = Decrypte($TexteCrypte,$Cle); 
    echo "Texte original : $MonTexte <Br>"; 
    echo "Texte crypté : $TexteCrypte <Br>"; 
    echo "Texte décrypté : $TexteClair <Br>";
     
    .>

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Par défaut
    Citation Envoyé par julp
    Quelle en est la raison ? Si des personnes ont accès à votre code source le problème sera le même car il sera possible en cherchant un minimum de retrouver l'algorithme. De plus, cette opération de chiffrage/déchiffrage demandera des opérations supplémentaires au serveur.
    Oui mais cette mesure est destinée aux gens qui ne s'y connaissent pas beaucoup à l'interne de la compagnie qui utilise l'application. Exemple: Lucien entre au bureau et décide qu'il veut foutre le bordel. Il trouve le fichier conf.inc et l'ouvre dans son éditeur pour voir s'il ne peut pas avoir une information. Il voit le nom d'utilisateur et mot de passe de la bd. Mais si elle est cryptée, je doute qu'il prenne la peine et le temps de décoder. Hors de cet exemple je comprends ton point, et merci pour le liens je vais regarder ça

    jojoquiasa: Wow merci, je crois que je vais utiliser ces fonctions pour les mots de passes aussi. Où l'as-tu prise?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Variables de config, meilleure méthode ?
    Par Delprog dans le forum Zend Framework
    Réponses: 2
    Dernier message: 01/08/2008, 08h52
  2. [FTP] Gestion fichiers de config
    Par Dev@lone dans le forum Langage
    Réponses: 10
    Dernier message: 28/04/2008, 17h22
  3. Réponses: 19
    Dernier message: 12/08/2006, 16h32
  4. Réponses: 20
    Dernier message: 27/06/2006, 17h42
  5. Réponses: 3
    Dernier message: 24/06/2004, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo