Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/05/2011, 16h14   #1
 
Homme Marc GUILLARD
Inscription : août 2007
Messages : 23
Détails du profil
Informations personnelles :
Nom : Homme Marc GUILLARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : août 2007
Messages : 23
Points : -1
Points : -1
Par défaut Script de codage et décodage avec clé compatible UTF-8

Bonjour à tous.

Je un script php de codage et de décodage avec un clé de cryptage.
Mais le problème est que comme le mon site est encode en UTF-8
le script me donne les caractère telle que : "�".

Je voudrais savoir si il existe des script de de codage et de décodage avec un clé de cryptage compatible UTF-8 ?

Merci d'avance de votre aide!
guillardmarc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 18h07   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Tu as un problème d'affichage des données ou de déchiffrage des données ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 23h25   #3
 
Homme Marc GUILLARD
Inscription : août 2007
Messages : 23
Détails du profil
Informations personnelles :
Nom : Homme Marc GUILLARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : août 2007
Messages : 23
Points : -1
Points : -1
Non, Pas quand je crypte et décrypte dans le même script.mais pas quand je fais un copier-coller puis un décryptage.
Quand j'encode mon script en "ISO Latin 1", tout marche bien. Mais que je le encode en "UTF-8" script, ça marche plus.

Voici mon script :
Code :
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
 
<fieldset><legend><strong><u>Cryptage d'information avec clé* :</u></strong></legend>
<?php
if   (isset ($_POST['formulaire_1_cle_cryptage']) && isset ($_POST['formulaire_1_information_a_crypter']))
     {$cle_de_cryptage = $_POST['formulaire_1_cle_cryptage'];
	  $information_a_crypte = $_POST['formulaire_1_information_a_crypter'];
      $algo = MCRYPT_BLOWFISH;
      $mode = MCRYPT_MODE_NOFB;
      // calcul des longueurs max de la clé et de l'IV
      $key_size = mcrypt_module_get_algo_key_size($algo);
      $iv_size = mcrypt_get_iv_size($algo, $mode);
      // création d'un IV de la bonne longueur débutant par exemple de iv suivi de 0
      $iv = mcrypt_create_iv($iv_size, substr("uaGx6mUahpxKLpD1DbvIReEGlBz3jEo",0,$iv_size));
      // Mise à longueur suivant l'algorithme et le mode associé
      $cle_de_cryptage = substr($cle_de_cryptage, 0, $key_size);
	  // Créptage
	  $information_crypte = mcrypt_encrypt($algo, $cle_de_cryptage, $information_a_crypte, $mode, $iv);
      // Décryptage
      $information_decrypte = mcrypt_decrypt($algo, $cle_de_cryptage, $information_crypte, $mode, $iv);
	  echo ('Informations à cryptés = "'.$information_a_crypte.'"<br> Informations cryptés = "'.$information_crypte.'"<br> Information décrypté = "'.$information_decrypte.'"');
	  unset ($_POST['formulaire_2_cle_cryptage'], $_POST['formulaire_2_information_a_crypter']);
	  ;}
else {
?>
<form method="post">
<ul>
<li><strong><u>Clé de cryptage :</u></strong></li>
<input name="formulaire_1_cle_cryptage" type="text" size="100" maxlength="256">
</ul>
<ul>
<li><strong><u>Information à crypté :</u></strong>
</li>
<textarea name="formulaire_1_information_a_crypter" cols="100" rows="10" wrap="physical"></textarea>
</ul>
 
<input type="submit" value="Crypter"> <input name="" type="reset">
</form>
<?php
}
?>
(* = Décryptage possible)
</fieldset>
Je vois pas le problème?
Merci d'avance!
guillardmarc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 23h52   #4
Membre Expert
 
Inscription : septembre 2010
Messages : 1 242
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 242
Points : 1 564
Points : 1 564
As-tu essayé les fonctions utf8_decode, utf8_encode ?
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 00h05   #5
 
Homme Marc GUILLARD
Inscription : août 2007
Messages : 23
Détails du profil
Informations personnelles :
Nom : Homme Marc GUILLARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : août 2007
Messages : 23
Points : -1
Points : -1
nom mais j'en est entendu parler mais je n'ai pas essayer!
C'est possible avec un clé de cryptage?
guillardmarc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 07h15   #6
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 802
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 802
Points : 1 515
Points : 1 515
Ton fichier contenant le code est-il enregistré en UTF-8 sans BOM ?
Car ta clé est en dur dans le fichier, donc si elle est en ANSI ou autre c'est normal que ça bug.
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/05/2011, 10h46   #7
 
Homme Marc GUILLARD
Inscription : août 2007
Messages : 23
Détails du profil
Informations personnelles :
Nom : Homme Marc GUILLARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : août 2007
Messages : 23
Points : -1
Points : -1
Dans les préférence Dreamweaver j'ai activé "Unicode 5.1 UTF-8" dans le codage par défaut. Puis dans le formulaire de normalisation Unicode, j'ai sélectionné l'option "C (Décomposition canonique suivie d'une composition canonique)" et sa marche pas! Pour la partie
Citation:
Car ta clé est en dur dans le fichier, donc si elle est en ANSI ou autre c'est normal que ça bug.
je ne comprend pas se que tu veux dire!
guillardmarc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 11h13   #8
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Pourrais-tu décrire précisément ton problème : qu'est ce que tu passes de Latin 1 vers UTF8 ? et qu'est ce que tu obtiens précisément ?

J'ai testé ton code et déjà il ne fonctionne pas car tu utilises mal la fonction mcrypt_create_iv(), ce qui provoque moult warning.
Une fois ce problème corrigé, que mon fichier soit en UTF8 ou en ANSI ma déchiffrage fonctionne normalement.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/05/2011, 12h51   #9
 
Homme Marc GUILLARD
Inscription : août 2007
Messages : 23
Détails du profil
Informations personnelles :
Nom : Homme Marc GUILLARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : août 2007
Messages : 23
Points : -1
Points : -1
C'est quoi la correction de "mcrypt_create_iv()"?
guillardmarc est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 14/05/2011, 13h52   #10
Membre expérimenté
 
Avatar de FMaz
 
Inscription : mars 2005
Messages : 648
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 648
Points : 527
Points : 527
À mon avis c'est ton 2ieme paramètre qui est erronné. la fonction s'attend à avoir une constante qui prend une valeur aléatoire, pas une chaine personnalisée fixe.

http://php.net/manual/fr/function.mcrypt-create-iv.php
FMaz est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/05/2011, 21h53   #11
 
Homme Marc GUILLARD
Inscription : août 2007
Messages : 23
Détails du profil
Informations personnelles :
Nom : Homme Marc GUILLARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : août 2007
Messages : 23
Points : -1
Points : -1
Voici mon script :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
$algorithme_de_cryptage = MCRYPT_BLOWFISH;
	  $cle_de_crytage = $_POST['cle_de_cryptage'];
	  $information_a_crypter = $_POST['information_a_crypter'];
	  $mode_de_cryptage = MCRYPT_MODE_NOFB;
	  // Calcul de la longueur maximum de la clef :
	  $taille_cle = mcrypt_module_get_algo_key_size($algorithme_de_cryptage);
	  $taille_iv = mcrypt_get_iv_size($algorithme_de_cryptage, $mode_de_cryptage);
	  // Création d'un IV de la bonne longueur avec l'exemple "uaGx6mUahpxKLpD1DbvIReEGlBz3jEo" :
	  $iv = mcrypt_create_iv($taille_iv, MCRYPT_DEV_RANDOM);
	  // Mise en longueur de la clé :
	  $cle_de_cryptage = substr($cle_de_cryptage, 0, $taille_cle);
	  // Cryptage des informations :
	  $information_crypte = mcrypt_encrypt($algorithme_de_cryptage, $cle_de_cryptage, $information_a_crypte, $mode_de_cryptage, $iv);
	  // Affichage des information
	  echo ('Information à crypter => "'.$information_a_crypter.'"<br>Information crypter => "'.$information_crypter.'"');
C'est possible d'avoir la correction parce-que je ne trouve pas la solution.
Merci d'avance
guillardmarc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 21h59   #12
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Commence par lire les messages que tu as déjà eu : ton script fonctionne
Citation:
Pourrais-tu décrire précisément ton problème : qu'est ce que tu passes de Latin 1 vers UTF8 ? et qu'est ce que tu obtiens précisément ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 22h48   #13
 
Homme Marc GUILLARD
Inscription : août 2007
Messages : 23
Détails du profil
Informations personnelles :
Nom : Homme Marc GUILLARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : août 2007
Messages : 23
Points : -1
Points : -1
Sous Latin 1; L'information crypté ne contient pas de caractère " � ". Donc quand je copie l'information code, et je la colle dans mon script de décryptage. Ca marche!
Sous UTF-8; L'information crypté contient " � ". Donc quand je copie l'information code, et je la colle dans mon script de décryptage. Ca ne marche pas!
guillardmarc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 22h58   #14
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Citation:
qu'est ce que tu passes de Latin 1 vers UTF8 ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 23h03   #15
 
Homme Marc GUILLARD
Inscription : août 2007
Messages : 23
Détails du profil
Informations personnelles :
Nom : Homme Marc GUILLARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : août 2007
Messages : 23
Points : -1
Points : -1
je ne comprend pas ce que tu veux dire?
guillardmarc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 23h05   #16
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Qu'est ce que tu mets "sous latin ou sous UTF8" ? Tu changes quoi concretement ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 23h24   #17
 
Homme Marc GUILLARD
Inscription : août 2007
Messages : 23
Détails du profil
Informations personnelles :
Nom : Homme Marc GUILLARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : août 2007
Messages : 23
Points : -1
Points : -1
Quand j'encode mon fichier en UTF-8, le cryptage des informations donne une suite de caractère telle que "�".
guillardmarc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 23h29   #18
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Est-ce que ta page contient une définition HTML de l'encodage ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2011, 00h14   #19
 
Homme Marc GUILLARD
Inscription : août 2007
Messages : 23
Détails du profil
Informations personnelles :
Nom : Homme Marc GUILLARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : août 2007
Messages : 23
Points : -1
Points : -1
Oui! Mais j'ai un doute, donc voici le code complet du fichier :
Code :
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Cyptage avec clé.</title>
<style type="text/css">
<!--
 
-->
</style>
</head>
 
<body>
<fieldset>
<legend><u><strong>Script de cryptage*</strong></u></legend>
<?
if   (isset ($_POST['cle_de_cryptage']) && isset ($_POST['information_a_crypter']))
     {$algorithme_de_cryptage = MCRYPT_BLOWFISH;
	  $cle_de_crytage = $_POST['cle_de_cryptage'];
	  $information_a_crypter = $_POST['information_a_crypter'];
	  $mode_de_cryptage = MCRYPT_MODE_NOFB;
	  // Calcul de la longueur maximum de la clef :
	  $taille_cle = mcrypt_module_get_algo_key_size($algorithme_de_cryptage);
	  $taille_iv = mcrypt_get_iv_size($algorithme_de_cryptage, $mode_de_cryptage);
	  // Création d'un IV de la bonne longueur avec l'exemple "uaGx6mUahpxKLpD1DbvIReEGlBz3jEo" :
	  $iv = mcrypt_create_iv($taille_iv, MCRYPT_DEV_RANDOM);
	  // Mise en longueur de la clé :
	  $cle_de_cryptage = substr($cle_de_cryptage, 0, $taille_cle);
	  // Cryptage des informations :
	  $information_crypte = mcrypt_encrypt($algorithme_de_cryptage, $cle_de_cryptage, $information_a_crypte, $mode_de_cryptage, $iv);
	  // Affichage des information
	  echo ('Information à crypter => "'.$information_a_crypter.'"<br>Information crypter => "'.$information_crypter.'"');}
else { 
?>
<form method="post">
<ul>
<li><u>Clé de cryptage :</u></li>
<input name="cle_de_cryptage" type="text" size="100" maxlength="100" />
<li><u>Information à crypté :</u></li>
<textarea name="information_a_crypter" cols="100" rows="10" wrap="physical"></textarea>
</ul>
<input type="submit" value="Crypter">
<input name="" type="reset">
</form>
<?
;}
?>
(* = "Décryptage possible avec la clé")
</fieldset>
</body>
</html>
guillardmarc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2011, 00h22   #20
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Tu affiches bien les erreurs quand tu developpes ?
Code :
$cle_de_cryptage = $_POST['cle_de_cryptage'];
Sinon à part ca ton code fonctionne aussi bien en UTF8 qu'en ANSI.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h19.


 
 
 
 
Partenaires

Hébergement Web