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 :

Fonction de cryptage, comment ne renvoyer que des lettres ? [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut Fonction de cryptage, comment ne renvoyer que des lettres ?
    Bonjour à tous,

    J'ai trouvé ces fonctions sur le net qui sont pas mal pour crypter des informations.

    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
     
    	// génére la clé
    	function generatekey($Chaine,$CleDEncryptage)
    	{
    	$CleDEncryptage = md5($CleDEncryptage);
    	$Compteur=0;
    	$VariableTemp = "";
    	for ($Ctr=0;$Ctr<strlen($Chaine);$Ctr++)
    		{
    			if ($Compteur==strlen($CleDEncryptage))
    			$Compteur=0;
    			$VariableTemp.= substr($Chaine,$Ctr,1) ^ substr($CleDEncryptage,$Compteur,1);
    			$Compteur++;
    		}
     
    	 return $VariableTemp;
    	}
     
    	// Génère le cryptage.
    	function cryptage($Chaine,$Cle)
    	{
    		srand((double)microtime()*1000000);
    		$CleDEncryptage = md5(rand(0,32000) );
    		$Compteur=0;
    		$VariableTemp = "";
    		for ($Ctr=0;$Ctr<strlen($Chaine);$Ctr++)
    		{
    			if ($Compteur==strlen($CleDEncryptage))
    			$Compteur=0;
    			$VariableTemp.= substr($CleDEncryptage,$Compteur,1).(substr($Chaine,$Ctr,1) ^ substr($CleDEncryptage,$Compteur,1) );
    			$Compteur++;
    		}
    		return base64_encode($this->generatekey($VariableTemp,$Cle) );
    	}
     
    	// Génère le décryptage.
    	function decryptage($Chaine,$Cle)
    	{
    		$Chaine = $this->generatekey(base64_decode($Chaine),$Cle);
    		$VariableTemp = "";
    		for ($Ctr=0;$Ctr<strlen($Chaine);$Ctr++)
    		{
    			$md5 = substr($Chaine,$Ctr,1);
    			$Ctr++;
    			$VariableTemp.= (substr($Chaine,$Ctr,1) ^ $md5);
    		}
    		return $VariableTemp;
    	}
    Y a-t-il un moyen pour que la fonction generatekey ne produisent que des lettres (exemple "sdfasdfasdfawefasfsdd") sans aucun caractère spéciaux tel que ">, =, +" ?

    Merci de votre aide.

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    2 choses :
    - la fonction md5 ne devrait plus être utilisée, depuis qu'il a été démontré qu'il était possible de récupérer un même code de hashage à partir de deux chaines différentes. Ceci est d'autant plus vrai avec son utilisation dans une fonction de cryptage.
    - pour ton problème de symboles dans la clé, il te suffit de la passer à la moulinette d'un base64_encode/decode.

    Sinon au regard de l'algorithme, je ne pense pas qu'il soit possible d'éviter l'apparition de symboles.

  3. #3
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut
    Salut Rawsrc et merci de ta réponse !

    Bah effectivement en utilisant : base64_encode/decode, ça fait exactement ce que je veux !

    Merci !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/11/2007, 12h00
  2. Fonction de test que des lettres
    Par Ekimasu dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 18/05/2007, 20h57

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