begin process at 2010 03 21 04:43:16
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité & Cryptage

 > UNE CLASSE DE GÉNÉRATION DE MOT DE PASSE

UNE CLASSE DE GÉNÉRATION DE MOT DE PASSE


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Sécurité & Cryptage Classé sous :motdepasse, cryptage, générateur Niveau :Initié Date de création :14/09/2007 Vu :5 749

Auteur : DaCodeManiak

Ecrire un message privé
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Une petite classe qui prend en charge la génération automatique de mot de passe.

Je n'ai pas inventé grand chose, mais... j'ai réuni plusieurs sources dans une classe.

Vous y trouverez plusieurs possibilités comme :
- Définir la taille du mot de passe à générer
- Définir si le mot de passe ne doit contenir que des lettres,
- Définir si le mot de passe peut contenir des majuscules et des minuscules,
- Définir si le mot de passe peut contenir des chiffres et/ou des caractères spéciaux


Source

  • <?php
  • /******************************************************************************/
  • /* Nom : password_manager.class.php */
  • /* Auteur : Dièse Include */
  • /* Date : Sep 2007 */
  • /* Projet : FRAMEWORK Dièse Include */
  • /* Objet : Utilitaires de gestion et génération de mots de passe */
  • /******************************************************************************/
  • /******************************************************************************/
  • /* Importation des packages */
  • /******************************************************************************/
  • /******************************************************************************/
  • /* Interface */
  • /******************************************************************************/
  • class password_manager {
  • /****************************************************************************/
  • /* Définition des propriétés de la classe */
  • /****************************************************************************/
  • var $default_password_length = 15; // Longueur par défaut du mot de passe
  • var $use_only_letters = true; // Vrai si le mot de passe ne doit comporter que des lettres
  • var $case_sensitive = false; // Vrai si le mélange maj et min est autorisé
  • var $use_special_char = false; // Vrai si le mot de passe peut contenir des caractères spéciaux
  • var $encrypt_method = "md5"; // Par défaut cryptage MD5
  • var $clear_password = ""; // Mot de passe en clair généré
  • // Définition des tableaux de caractères utilisables
  • var $usable_chars = array();
  • /****************************************************************************/
  • /* Définition des méthodes publiques */
  • /****************************************************************************/
  • /****************************************************************************/
  • /* public void constructor password_manager(void) */
  • /* @access public */
  • /* @type constructeur */
  • /* @param void */
  • /* @return void */
  • /* @abstract Instancie un objet de type password_manager */
  • /****************************************************************************/
  • function password_manager(){
  • /**************************************************************************/
  • /* Déclaration des variables locales */
  • /**************************************************************************/
  • /**************************************************************************/
  • /* Implémentation */
  • /**************************************************************************/
  • return;
  • }
  • /****************************************************************************/
  • /* public void set_password_length(int length) */
  • /* @access public */
  • /* @type setter */
  • /* @param int $length => longueur par défaut du mot de passe */
  • /* @return void */
  • /* @abstract Définit la longueur par défaut du mot de passe */
  • /****************************************************************************/
  • function set_password_length($length){
  • /**************************************************************************/
  • /* Déclaration des variables locales */
  • /**************************************************************************/
  • $max_password_length = 15; // Longueur maximale à ne pas dépasser
  • /**************************************************************************/
  • /* Implémentation */
  • /**************************************************************************/
  • if(defined('MAX_PASSWORD_LENGTH'))
  • $max_password_length = MAX_PASSWORD_LENGTH;
  • if($length == 0 || $length > $max_password_length){
  • $this->default_password_length = $max_password_length;
  • } else {
  • $this->default_password_length = $length;
  • }
  • return;
  • }
  • /****************************************************************************/
  • /* public void use_only_letters(bool use) */
  • /* @access public */
  • /* @type setter */
  • /* @param bool $use */
  • /* @return void */
  • /* @abstract Détermine si le mot de passe est constitué ou non de lettres */
  • /* uniquement. */
  • /****************************************************************************/
  • function use_only_letters($use){
  • /**************************************************************************/
  • /* Déclaration des variables locales */
  • /**************************************************************************/
  • /**************************************************************************/
  • /* Implémentation */
  • /**************************************************************************/
  • $this->use_only_letters = $use;
  • return;
  • }
  • /****************************************************************************/
  • /* public void use_special_char(bool use) */
  • /* @access public */
  • /* @type setter */
  • /* @param bool $use */
  • /* @return void */
  • /* @abstract Détermine si le mot de passe peut contenir des caractères */
  • /* spéciaux. */
  • /****************************************************************************/
  • function use_special_char($use){
  • /**************************************************************************/
  • /* Déclaration des variables locales */
  • /**************************************************************************/
  • /**************************************************************************/
  • /* Implémentation */
  • /**************************************************************************/
  • $this->use_special_char = $use;
  • return;
  • }
  • /****************************************************************************/
  • /* public void is_case_sensitive(bool sensitive) */
  • /* @access public */
  • /* @type setter */
  • /* @param bool $sensitive */
  • /* @return void */
  • /* @abstract Détermine si le mot de passe est constitué de maj et min */
  • /* ou seulement de minuscules */
  • /****************************************************************************/
  • function is_case_sensitive($sensitive){
  • /**************************************************************************/
  • /* Déclaration des variables locales */
  • /**************************************************************************/
  • /**************************************************************************/
  • /* Implémentation */
  • /**************************************************************************/
  • $this->case_sensitive = $sensitive;
  • return;
  • }
  • /****************************************************************************/
  • /* public void set_encrypt_method(string method) */
  • /* @access public */
  • /* @type setter */
  • /* @param string $method => méthode d'encryptage à utiliser */
  • /* - md5 par défaut, */
  • /* - sha1 */
  • /* - custom : encryptage #Include */
  • /* @return void */
  • /* @abstract Détermine la méthode d'encryptage du mot de passe */
  • /****************************************************************************/
  • function set_encrypt_method($method){
  • /**************************************************************************/
  • /* Déclaration des variables locales */
  • /**************************************************************************/
  • $mns_method = ""; // Chaîne réduite en minuscules
  • /**************************************************************************/
  • /* Implémentation */
  • /**************************************************************************/
  • if($method != ""){
  • $mns_method = strtolower($method);
  • if($mns_method == "md5" || $mns_method=="sha1" || $mns_method == "custom"){
  • $this->encrypt_method = $mns_method;
  • }
  • }
  • return;
  • }
  • /****************************************************************************/
  • /* public void genere_password(void) */
  • /* @access public */
  • /* @type Fonction */
  • /* @param void */
  • /* @return void */
  • /* @abstract Génère un mot de passe aléatoire à partir des définitions */
  • /* @comment Ajouter à terme un système évitant de doubler les lettres */
  • /****************************************************************************/
  • function genere_password(){
  • /**************************************************************************/
  • /* Déclaration des variables locales */
  • /**************************************************************************/
  • $usable_chars_length = 0; // Taille du tableau des caractères utilisables
  • $clear_password = ""; // Mot de passe en clair généré
  • /**************************************************************************/
  • /* Implémentation */
  • /**************************************************************************/
  • // Récupère la tables des minuscules systématiquement
  • $this->add_min_table();
  • if($this->case_sensitive){
  • $this->add_maj_table();
  • }
  • if(!$this->use_only_letters){
  • $this->add_digit_table();
  • }
  • if($this->use_special_char){
  • $this->add_special_chars_table();
  • }
  • // En sortie $this->usable_chars contient l'ensemble des caractères utilisables
  • // Génère ensuite aléatoirement une chaîne de taille égale à la taille souhaitée
  • for($i=0;$i<$this->default_password_length;$i++){
  • $clear_password .= $this->usable_chars[$this->tirage()];
  • }
  • // Le mot de passe est généré
  • $this->clear_password = $clear_password;
  • # Debug
  • #echo "Mot de passe généré : " . $clear_password . " Taille : " . strlen($clear_password) . "<br/>\n";
  • # Fin Debug
  • return;
  • }
  • /****************************************************************************/
  • /* public string get_encrypted_password(void) */
  • /* @access public */
  • /* @type getter */
  • /* @param void */
  • /* @return string */
  • /* @abstract Retourne le mot de passe encrypté selon la méthode définie */
  • /****************************************************************************/
  • function get_encrypted_password(){
  • /**************************************************************************/
  • /* Définition des variables locales */
  • /**************************************************************************/
  • $scramble_password = ""; // Mot de passe crypté
  • /**************************************************************************/
  • /* Implémentation */
  • /**************************************************************************/
  • if($this->clear_password == ""){
  • $this->genere_password();
  • }
  • // En fonction de l'algorithme de cryptage
  • switch($this->encrypt_method){
  • case 'md5':
  • $scrambled_password = md5($this->clear_password);
  • break;
  • case 'sha1':
  • $scrambled_password = sha1($this->clear_password);
  • break;
  • case 'custom':
  • // Ajoutez ici votre propre algorithme de cryptage... si besoin
  • $scrambled_password = $this->clear_password;
  • break;
  • }
  • return $scrambled_password;
  • }
  • /****************************************************************************/
  • /* public string get_clear_password(void) */
  • /* @access public */
  • /* @type getter */
  • /* @param void */
  • /* @return string */
  • /* @abstract Retourne le mot de passe en clair */
  • /****************************************************************************/
  • function get_clear_password(){
  • /**************************************************************************/
  • /* Définition des variables locales */
  • /**************************************************************************/
  • /**************************************************************************/
  • /* Implémentation */
  • /**************************************************************************/
  • if($this->clear_password == ""){
  • $this->genere_password();
  • }
  • return $this->clear_password;
  • }
  • /****************************************************************************/
  • /* Définition des méthodes protégées */
  • /****************************************************************************/
  • /****************************************************************************/
  • /* Définition des méthodes privées */
  • /****************************************************************************/
  • /****************************************************************************/
  • /* private int tirage(void) */
  • /* @access private */
  • /* @type Méthode */
  • /* @param void */
  • /* @return int */
  • /* @abstract Retourne une valeur entière aléatoire comprise entre 0 et */
  • /* la taille maximale du tableau des caractères utilisables. */
  • /****************************************************************************/
  • function tirage(){
  • /**************************************************************************/
  • /* Déclaration des variables locales */
  • /**************************************************************************/
  • $usable_char_bound = 0; // Taille maximale du tableau des caractères utilisables
  • /**************************************************************************/
  • /* Implémentation */
  • /**************************************************************************/
  • $usable_char_bound = sizeof($this->usable_chars) - 1;
  • // Initialise le générateur de nombre aléatoire
  • srand((double)microtime()*1000000);
  • return rand(0,$usable_char_bound);
  • }
  • /****************************************************************************/
  • /* private void add_min_table(void) */
  • /* @access private */
  • /* @type getter */
  • /* @param void */
  • /* @return void */
  • /* @abstract Ajoute la table des minuscules au tableau des caractères */
  • /* utilisables. */
  • /****************************************************************************/
  • function add_min_table(){
  • /**************************************************************************/
  • /* Déclaration des variables locales */
  • /**************************************************************************/
  • $min_chars = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n',
  • 'o','p','q','r','s','t','u','v','w','x','y','z');
  • /**************************************************************************/
  • /* Implémentation */
  • /**************************************************************************/
  • $this->usable_chars = array_merge($this->usable_chars,$min_chars);
  • return;
  • }
  • /****************************************************************************/
  • /* private void add_maj_table(void) */
  • /* @access private */
  • /* @type getter */
  • /* @param void */
  • /* @return void */
  • /* @abstract Ajoute la table des majuscules au tableau des caractères */
  • /* utilisables. */
  • /****************************************************************************/
  • function add_maj_table(){
  • /**************************************************************************/
  • /* Déclaration des variables locales */
  • /**************************************************************************/
  • $maj_chars = array('A','B','B','D','E','F','G','H','I','J','K','L','M','N',
  • 'O','P','Q','R','S','T','U','V','W','X','Y','Z');
  • /**************************************************************************/
  • /* Implémentation */
  • /**************************************************************************/
  • $this->usable_chars = array_merge($this->usable_chars,$maj_chars);
  • return;
  • }
  • /****************************************************************************/
  • /* private void add_digit_table(void) */
  • /* @access private */
  • /* @type getter */
  • /* @param void */
  • /* @return void */
  • /* @abstract Ajoute la table des chiffres au tableau des caractères */
  • /* utilisables. */
  • /****************************************************************************/
  • function add_digit_table(){
  • /**************************************************************************/
  • /* Déclaration des variables locales */
  • /**************************************************************************/
  • $digits = array('0','1','2','3','4','5','6','7','8','9');
  • /**************************************************************************/
  • /* Implémentation */
  • /**************************************************************************/
  • $this->usable_chars = array_merge($this->usable_chars,$digits);
  • return;
  • }
  • /****************************************************************************/
  • /* private void add_special_chars_table(void) */
  • /* @access private */
  • /* @type getter */
  • /* @param void */
  • /* @return void */
  • /* @abstract Ajoute la table des caractères spéciaux au tableau des */
  • /* caractères utilisables. */
  • /****************************************************************************/
  • function add_special_chars_table(){
  • /**************************************************************************/
  • /* Déclaration des variables locales */
  • /**************************************************************************/
  • $special_chars = array('@','$','^','+','-','|','!','#','*','/');
  • /**************************************************************************/
  • /* Implémentation */
  • /**************************************************************************/
  • $this->usable_chars = array_merge($this->usable_chars,$special_chars);
  • return;
  • }
  • }
  • ?>
<?php
/******************************************************************************/
/* Nom          : password_manager.class.php                                  */
/* Auteur       : Dièse Include                                               */
/* Date         : Sep 2007                                                    */
/* Projet       : FRAMEWORK Dièse Include                                     */
/* Objet        : Utilitaires de gestion et génération de mots de passe       */
/******************************************************************************/

/******************************************************************************/
/* Importation des packages                                                   */
/******************************************************************************/

/******************************************************************************/
/* Interface                                                                  */
/******************************************************************************/

class password_manager {
  
  /****************************************************************************/
  /* Définition des propriétés de la classe                                   */
  /****************************************************************************/
  var $default_password_length          = 15; // Longueur par défaut du mot de passe
  var $use_only_letters                 = true; // Vrai si le mot de passe ne doit comporter que des lettres
  var $case_sensitive                   = false; // Vrai si le mélange maj et min est autorisé
  var $use_special_char                 = false; // Vrai si le mot de passe peut contenir des caractères spéciaux
  var $encrypt_method                   = "md5"; // Par défaut cryptage MD5
  var $clear_password                   = ""; // Mot de passe en clair généré
  
  // Définition des tableaux de caractères utilisables
  var $usable_chars                     = array();
  /****************************************************************************/
  /* Définition des méthodes publiques                                        */
  /****************************************************************************/
  
  /****************************************************************************/
  /* public void constructor password_manager(void)                           */
  /*  @access public                                                          */
  /*  @type constructeur                                                      */
  /*  @param void                                                             */
  /*  @return void                                                            */
  /*  @abstract Instancie un objet de type password_manager                   */
  /****************************************************************************/
  function password_manager(){
    /**************************************************************************/
    /* Déclaration des variables locales                                      */
    /**************************************************************************/
    
    /**************************************************************************/
    /* Implémentation                                                         */
    /**************************************************************************/
    return;
  }
  
  /****************************************************************************/
  /* public void set_password_length(int length)                              */
  /*  @access public                                                          */
  /*  @type setter                                                            */
  /*  @param int $length => longueur par défaut du mot de passe               */
  /*  @return void                                                            */
  /*  @abstract Définit la longueur par défaut du mot de passe                */
  /****************************************************************************/
  function set_password_length($length){
    /**************************************************************************/
    /* Déclaration des variables locales                                      */
    /**************************************************************************/
    $max_password_length          = 15; // Longueur maximale à ne pas dépasser
    
    /**************************************************************************/
    /* Implémentation                                                         */
    /**************************************************************************/
    if(defined('MAX_PASSWORD_LENGTH'))
      $max_password_length = MAX_PASSWORD_LENGTH;
      
    if($length == 0 || $length > $max_password_length){
      $this->default_password_length = $max_password_length;
    } else {
      $this->default_password_length = $length;
    }
    
    return;
  }
  
  /****************************************************************************/
  /* public void use_only_letters(bool use)                                   */
  /*  @access public                                                          */
  /*  @type setter                                                            */
  /*  @param bool $use                                                        */
  /*  @return void                                                            */
  /*  @abstract Détermine si le mot de passe est constitué ou non de lettres  */
  /*    uniquement.                                                           */
  /****************************************************************************/
  function use_only_letters($use){
    /**************************************************************************/
    /* Déclaration des variables locales                                      */
    /**************************************************************************/
    
    /**************************************************************************/
    /* Implémentation                                                         */
    /**************************************************************************/
    $this->use_only_letters = $use;
      
    return;
  }

  /****************************************************************************/
  /* public void use_special_char(bool use)                                   */
  /*  @access public                                                          */
  /*  @type setter                                                            */
  /*  @param bool $use                                                        */
  /*  @return void                                                            */
  /*  @abstract Détermine si le mot de passe peut contenir des caractères     */
  /*    spéciaux.                                                             */
  /****************************************************************************/
  function use_special_char($use){
    /**************************************************************************/
    /* Déclaration des variables locales                                      */
    /**************************************************************************/
    
    /**************************************************************************/
    /* Implémentation                                                         */
    /**************************************************************************/
    $this->use_special_char = $use;
      
    return;
  }
    
  /****************************************************************************/
  /* public void is_case_sensitive(bool sensitive)                            */
  /*  @access public                                                          */
  /*  @type setter                                                            */
  /*  @param bool $sensitive                                                  */
  /*  @return void                                                            */
  /*  @abstract Détermine si le mot de passe est constitué de maj et min      */
  /*    ou seulement de minuscules                                            */
  /****************************************************************************/
  function is_case_sensitive($sensitive){
    /**************************************************************************/
    /* Déclaration des variables locales                                      */
    /**************************************************************************/
    
    /**************************************************************************/
    /* Implémentation                                                         */
    /**************************************************************************/
    $this->case_sensitive = $sensitive;
      
    return;
  }
  
  /****************************************************************************/
  /* public void set_encrypt_method(string method)                            */
  /*  @access public                                                          */
  /*  @type setter                                                            */
  /*  @param string $method => méthode d'encryptage à utiliser                */
  /*    - md5 par défaut,                                                     */
  /*    - sha1                                                                */
  /*    - custom : encryptage #Include                                        */
  /*  @return void                                                            */
  /*  @abstract Détermine la méthode d'encryptage du mot de passe             */
  /****************************************************************************/
  function set_encrypt_method($method){
    /**************************************************************************/
    /* Déclaration des variables locales                                      */
    /**************************************************************************/
    $mns_method         = ""; // Chaîne réduite en minuscules
    
    /**************************************************************************/
    /* Implémentation                                                         */
    /**************************************************************************/
    if($method != ""){
      $mns_method = strtolower($method);
      if($mns_method == "md5" || $mns_method=="sha1" || $mns_method == "custom"){
        $this->encrypt_method = $mns_method;
      }
    }
      
    return;
  }
  
  /****************************************************************************/
  /* public void genere_password(void)                                        */
  /*  @access public                                                          */
  /*  @type Fonction                                                          */
  /*  @param void                                                             */
  /*  @return void                                                            */
  /*  @abstract Génère un mot de passe aléatoire à partir des définitions     */
  /*  @comment Ajouter à terme un système évitant de doubler les lettres      */
  /****************************************************************************/
  function genere_password(){
    /**************************************************************************/
    /* Déclaration des variables locales                                      */
    /**************************************************************************/
    $usable_chars_length          = 0; // Taille du tableau des caractères utilisables
    $clear_password               = ""; // Mot de passe en clair généré
    
    /**************************************************************************/
    /* Implémentation                                                         */
    /**************************************************************************/
    // Récupère la tables des minuscules systématiquement
    $this->add_min_table();
    
    if($this->case_sensitive){
      $this->add_maj_table();  
    }
    
    if(!$this->use_only_letters){
      $this->add_digit_table();
    }
    
    if($this->use_special_char){
      $this->add_special_chars_table();
    }
    
    // En sortie $this->usable_chars contient l'ensemble des caractères utilisables
    
    // Génère ensuite aléatoirement une chaîne de taille égale à la taille souhaitée
    for($i=0;$i<$this->default_password_length;$i++){
      $clear_password .= $this->usable_chars[$this->tirage()];  
    }
    
    // Le mot de passe est généré
    $this->clear_password = $clear_password;
    
    # Debug
    #echo "Mot de passe généré : " . $clear_password . " Taille : " . strlen($clear_password) . "<br/>\n";
    # Fin Debug
    
    return; 
  }
  
  /****************************************************************************/
  /* public string get_encrypted_password(void)                               */
  /*  @access public                                                          */
  /*  @type getter                                                            */
  /*  @param void                                                             */
  /*  @return string                                                          */
  /*  @abstract Retourne le mot de passe encrypté selon la méthode définie    */
  /****************************************************************************/
  function get_encrypted_password(){
    /**************************************************************************/
    /* Définition des variables locales                                       */
    /**************************************************************************/
    $scramble_password          = ""; // Mot de passe crypté
    
    /**************************************************************************/
    /* Implémentation                                                         */
    /**************************************************************************/
    
    if($this->clear_password == ""){
      $this->genere_password();
    }
    
    // En fonction de l'algorithme de cryptage
    switch($this->encrypt_method){
      case 'md5':
        $scrambled_password = md5($this->clear_password);
      break;
      case 'sha1':
        $scrambled_password = sha1($this->clear_password);
      break;
      case 'custom':
        // Ajoutez ici votre propre algorithme de cryptage... si besoin
        $scrambled_password = $this->clear_password;
      break;
    }
    
    return $scrambled_password;
  }
  
  /****************************************************************************/
  /* public string get_clear_password(void)                                   */
  /*  @access public                                                          */
  /*  @type getter                                                            */
  /*  @param void                                                             */
  /*  @return string                                                          */
  /*  @abstract Retourne le mot de passe en clair                             */
  /****************************************************************************/
  function get_clear_password(){
    /**************************************************************************/
    /* Définition des variables locales                                       */
    /**************************************************************************/
    
    /**************************************************************************/
    /* Implémentation                                                         */
    /**************************************************************************/
    
    if($this->clear_password == ""){
      $this->genere_password();
    }
        
    return $this->clear_password;
  }
  /****************************************************************************/
  /* Définition des méthodes protégées                                        */
  /****************************************************************************/
  
  /****************************************************************************/
  /* Définition des méthodes privées                                          */
  /****************************************************************************/
  
  /****************************************************************************/
  /* private int tirage(void)                                                 */
  /*  @access private                                                         */
  /*  @type Méthode                                                           */
  /*  @param void                                                             */
  /*  @return int                                                             */
  /*  @abstract Retourne une valeur entière aléatoire comprise entre 0 et     */
  /*    la taille maximale du tableau des caractères utilisables.             */
  /****************************************************************************/
  function tirage(){
    /**************************************************************************/
    /* Déclaration des variables locales                                      */
    /**************************************************************************/
    $usable_char_bound          = 0; // Taille maximale du tableau des caractères utilisables
    
    /**************************************************************************/
    /* Implémentation                                                         */
    /**************************************************************************/
    $usable_char_bound = sizeof($this->usable_chars) - 1;
    
    // Initialise le générateur de nombre aléatoire
    srand((double)microtime()*1000000);
    
    return rand(0,$usable_char_bound);
  }
  /****************************************************************************/
  /* private void add_min_table(void)                                         */
  /*  @access private                                                         */
  /*  @type getter                                                            */
  /*  @param void                                                             */
  /*  @return void                                                            */
  /*  @abstract Ajoute la table des minuscules au tableau des caractères      */
  /*    utilisables.                                                          */
  /****************************************************************************/
  function add_min_table(){
    /**************************************************************************/
    /* Déclaration des variables locales                                      */
    /**************************************************************************/
    $min_chars = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n',
      'o','p','q','r','s','t','u','v','w','x','y','z');
      
    /**************************************************************************/
    /* Implémentation                                                         */
    /**************************************************************************/
    $this->usable_chars = array_merge($this->usable_chars,$min_chars);
    
    return;
  }

  /****************************************************************************/
  /* private void add_maj_table(void)                                         */
  /*  @access private                                                         */
  /*  @type getter                                                            */
  /*  @param void                                                             */
  /*  @return void                                                            */
  /*  @abstract Ajoute la table des majuscules au tableau des caractères      */
  /*    utilisables.                                                          */
  /****************************************************************************/
  function add_maj_table(){
    /**************************************************************************/
    /* Déclaration des variables locales                                      */
    /**************************************************************************/
    $maj_chars = array('A','B','B','D','E','F','G','H','I','J','K','L','M','N',
      'O','P','Q','R','S','T','U','V','W','X','Y','Z');
      
    /**************************************************************************/
    /* Implémentation                                                         */
    /**************************************************************************/
    $this->usable_chars = array_merge($this->usable_chars,$maj_chars);
    
    return;
  }
  
  /****************************************************************************/
  /* private void add_digit_table(void)                                       */
  /*  @access private                                                         */
  /*  @type getter                                                            */
  /*  @param void                                                             */
  /*  @return void                                                            */
  /*  @abstract Ajoute la table des chiffres au tableau des caractères        */
  /*    utilisables.                                                          */
  /****************************************************************************/
  function add_digit_table(){
    /**************************************************************************/
    /* Déclaration des variables locales                                      */
    /**************************************************************************/
    $digits = array('0','1','2','3','4','5','6','7','8','9');
      
    /**************************************************************************/
    /* Implémentation                                                         */
    /**************************************************************************/
    $this->usable_chars = array_merge($this->usable_chars,$digits);
    
    return;
  }
  
  /****************************************************************************/
  /* private void add_special_chars_table(void)                               */
  /*  @access private                                                         */
  /*  @type getter                                                            */
  /*  @param void                                                             */
  /*  @return void                                                            */
  /*  @abstract Ajoute la table des caractères spéciaux au tableau des        */
  /*    caractères utilisables.                                               */
  /****************************************************************************/
  function add_special_chars_table(){
    /**************************************************************************/
    /* Déclaration des variables locales                                      */
    /**************************************************************************/
    $special_chars = array('@','$','^','+','-','|','!','#','*','/');
      
    /**************************************************************************/
    /* Implémentation                                                         */
    /**************************************************************************/
    $this->usable_chars = array_merge($this->usable_chars,$special_chars);
    
    return;
  }   
                                                               
}
?>

 Conclusion

Au final, pour générer un mot de passe...

include("password_manager.class.php");

$mon_password = new password_manger();

// Vous pouvez spécifier les options... Par défaut, le mot de passe aura une longueur de 15 caractères
// et sera constitué uniquement de caractères alphabétiques en minuscules
// Le cryptage se fera en MD5

$mon_password->set_password_length(6);
$mon_p assword->is_case_sensitive(true);
$mon_password->u se_only_letters(false);

echo "Le mot de passe généré (en clair...) est : " . $mon_password->get_clear_password() . "<br/>";
echo "Le mot de passe généré (crypté...) est : " . $mon_password->get_encrypted_password() . "<br/>";

Pour ceux qui veulent s'amuser, vous pouvez ajouter votre propre algo de cryptage... il vous suffira alors d'utiliser la méthode :

set_encrypt_method("custom") pour générer le cryptage maison (attention à la juridiction en vigueur en France)et modifier la méthode get_encrypted_password() pour implémenter votre algo.




 Sources du même auteur

Source avec Zip XML ET TABLEAUX : UNE CLASSE COMPLÈTE QUI CONVERTIT UN DOCUM...

 Sources de la même categorie

FONCTION DE NETTOYAGE DE VARIABLES AVEC UNE INSTALLATION DE ... par jroger
ALGORITHME DE CÉSAR SUR LA TABLE ASCII par Nementon
Source avec une capture CODEC D'OBFUSCATION DE LIEN HTML (PHP5) par masternico
GÉRER UN .HTPASSWD par coockiesch
Source avec Zip SERSESSIONS > CLASS PHP5 POUR GERER LES SESSIONS SIMPLEMENT par Astalavista

 Sources en rapport avec celle ci

Source avec Zip GÉNÉRATEUR DE MOTS CLÉS (TAGS) À PARTIR DE FICHIER HTML OU B... par Galip
GÉNÉRATEUR HTML DE MAP POUR IMAGE CLIQUABLE par 8Tnerolf8
CONTRÔLE QUALITÉ MOT DE PASSE POUR MISE À JOUR WINDOWS ACTI... par thev
Source avec Zip SYSTÈME D'IDENTIFICATION par Farfadh
GÉNÉRATEUR DE CLÉ par jynolen

Commentaires et avis

Commentaire de webdeb le 15/09/2007 00:44:16

Pourquoi ne pas utiliser le modèle objet PHP5 ?

Commentaire de kaktusatomik le 10/06/2008 22:24:10 10/10

Salut,
Merci pour cette jolie classe bien utile ;) et bien commentée

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Cryptage ou generateur [ par Moria ] Slt,Comment faire pour crypt xxx donne ? De la manière la plus simple, ( mais pas un md5 car c trop long )Comment faire pour genere une chaine de cara Problème de cryptage [ par BirD ] Hello, j'ai un petit problème au niveau du criptage de mes mots de passe:J'utilise la fonction crypt(); et jusque la tou va bien, il crypte mon mot de cryptage [ par huricane ] Bonjour, J'ai un problème pour crypter de simple mot de passe dans une base de donnée. Je suis sous postgresql et je dispose d'une table utilisateur o cryptage mot de passe [ par eax ] salut!j'ai vu sous phpmyadmin qu'on pouvait crypter des champs varchar lorsqu'ils contiennent des mots de passe par exemple, mais on fait comment en p Cryptage !!??!! [ par vincenteraptor ] UGH!Comment va les PHPCSusers???J ai un pb : j aimerai savoir deux petites choses à propos de cryptage :- Existe t il des fonction de cryptage réversi Clé de Cryptage [ par mightteam ] Salut, Je dois crée aléatoirement une clé SHA-1 et je ne sais pas comment faire..Est-ce que qu'elqu'un peut m'aider?Merci d'avanceMsn & Mail : Technic Cryptage et décryptage [ par kodiask ] voila j'ai remaker ke ds les forum BBphp les mot de pase ki etai envoyer vers les Bdd etai coder, mai comen on peu faire pour les decoder ? pour pouvo pb. inclusion / htm / php / fction [ par webdesignasp ] Bonjour,je viens de créer un script en PHP (existait en ASP) et ce que je pouvais faire avant en ASP, je ne peux plus le faire en PHP :code PHP qui ma cryptage et decryptage d'une chaine de caractère. [ par LocalStone ] Salut à tous ! Je cherche desepèrement une fonction, une classe ou n'importe quoi pour pouvoir crypter, puis decrypter une chaine de caractère. S'il v cryptage [ par lomass ] comment creer une fonction de cryptage en Md5


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,076 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales