Vigenere
Résolu/Fermé
jun_1393
Messages postés
28
Date d'inscription
jeudi 26 septembre 2019
Statut
Membre
Dernière intervention
2 juin 2020
-
13 nov. 2019 à 03:20
jun_1393 Messages postés 28 Date d'inscription jeudi 26 septembre 2019 Statut Membre Dernière intervention 2 juin 2020 - 13 nov. 2019 à 22:48
jun_1393 Messages postés 28 Date d'inscription jeudi 26 septembre 2019 Statut Membre Dernière intervention 2 juin 2020 - 13 nov. 2019 à 22:48
2 réponses
jordane45
Messages postés
38299
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 novembre 2024
4 704
13 nov. 2019 à 06:34
13 nov. 2019 à 06:34
Bonjour
Et quel est le souci exactement ?
Message d'erreur ou resultat incorrect? Merci de détailler...
Et quel est le souci exactement ?
Message d'erreur ou resultat incorrect? Merci de détailler...
jordane45
Messages postés
38299
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 novembre 2024
4 704
13 nov. 2019 à 19:08
13 nov. 2019 à 19:08
jun_1393
Messages postés
28
Date d'inscription
jeudi 26 septembre 2019
Statut
Membre
Dernière intervention
2 juin 2020
13 nov. 2019 à 19:59
13 nov. 2019 à 19:59
ok, entre temps j'Ai résolu le problème de la page blanche, j'ai mis un require_once dans ma page index.
mon code me permet de crypter(function encoder) maintenant sans problème sauf que problème( toujours un truc qui va pas )
la function decoder affiche des sortes de caractère spéciaux.
mon code me permet de crypter(function encoder) maintenant sans problème sauf que problème( toujours un truc qui va pas )
la function decoder affiche des sortes de caractère spéciaux.
jordane45
Messages postés
38299
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 novembre 2024
4 704
>
jun_1393
Messages postés
28
Date d'inscription
jeudi 26 septembre 2019
Statut
Membre
Dernière intervention
2 juin 2020
13 nov. 2019 à 20:04
13 nov. 2019 à 20:04
jun_1393
Messages postés
28
Date d'inscription
jeudi 26 septembre 2019
Statut
Membre
Dernière intervention
2 juin 2020
13 nov. 2019 à 20:30
13 nov. 2019 à 20:30
j'ai lu la page la déclaration de ma page est dans les normes, j'ai pas de bd à utiliser, mon décode est normalement opérationnel. oups j'avais pas posté
sinon le problème des caractère spéciaux est terminer sa affiche maintenant un texte lisible. je vais continuer a réglé mes bugs
sinon le problème des caractère spéciaux est terminer sa affiche maintenant un texte lisible. je vais continuer a réglé mes bugs
jun_1393
Messages postés
28
Date d'inscription
jeudi 26 septembre 2019
Statut
Membre
Dernière intervention
2 juin 2020
13 nov. 2019 à 22:38
13 nov. 2019 à 22:38
je ne sais pas pourquoi mais ma fonction décode ne decode pas le texte entré mais decode le texte entré lui même sa fait un moment que je regarde et j'ai pas trouvé de solution.
jun_1393
Messages postés
28
Date d'inscription
jeudi 26 septembre 2019
Statut
Membre
Dernière intervention
2 juin 2020
13 nov. 2019 à 22:48
13 nov. 2019 à 22:48
voici mon code actuel
ps: merci pour l'aide jusque ici jordane45
ps: merci pour l'aide jusque ici jordane45
<?php interface ICryptographie { public function encoder($key, $text); public function decoder($key, $text); public function regexp($chaine); } class Crypto implements ICryptographie { // fonction regexp pour geré les accents et caractére special function regexp($chaine) { $accents = Array("/é/", "/è/", "/ê/","/ë/", "/ç/", "/à/", "/â/","/á/","/ä/","/ã/","/å/", "/î/", "/ï/", "/í/", "/ì/", "/ù/", "/ô/", "/ò/", "/ó/", "/ö/"); $sans = Array("e", "e", "e", "e", "c", "a", "a","a", "a","a", "a", "i", "i", "i", "i", "u", "o", "o", "o", "o"); $chaine = preg_replace($accents, $sans,$chaine); $chaine = preg_replace('#[^A-Za-z0-9]#',' ',$chaine); return $chaine; } // $toto='#£$¤µ*%§!:;,@}=])°^¨_\'|-[({\'#"~&<>² <föù>dré£%}'; // echo teste($toto);//retourne » foudre // fonction pour encoder un texte function encoder($key, $text) { // $text = ""; #longeur de la clé répété $keyLength=strlen($text);//text// ## !array qui repetera la clé !!!!!!!!!!!! $repeatKey=strtolower(substr(str_repeat($key,$keyLength),0,$keyLength)); $text_code = " "; $j=0; $text .= ' '; // au cas ou $text est vide for($i=0;$i<=$keyLength;$i++){ if(ctype_alpha($text[$i])) { if (ctype_upper($text[$i])){ $text_code .= chr(((ord($repeatKey[$j]) -ord("a") + ord($text[$i]) -ord("A")) % 26 ) + ord("A")); } else { $text_code .= chr(((ord($repeatKey[$j]) -ord("a") + ord($text[$i]) -ord("a")) % 26 ) + ord("a")) ; } $j++; // $this->regexp($text_code); } else if($text[$i] == ' ' ){ $text_code .=' '; } } return $this->regexp($text_code); //return $text_code; } function decoder($key, $text) { // change key to lowercase for simplicity $key = strtolower($key); // intialize variables $code = ""; $ki = 0; $kl = strlen($key); $length = strlen($text); $text_decode =" "; // iterate over each line in text for ($i = 0; $i < $length; $i++) { // if the letter is alpha, decrypt it if (ctype_alpha($text[$i])) { // uppercase if (ctype_upper($text[$i])) { $x = (ord($text[$i]) - ord("A")) - (ord($key[$ki]) - ord("a")); if ($x < 0) { $x += 26; } $x = $x + ord("A"); $text[$i] = chr($x); } // lowercase else { $x = (ord($text[$i]) - ord("a")) - (ord($key[$ki]) - ord("a")); if ($x < 0) { $x += 26; } $x = $x + ord("a"); $text[$i] = chr($x); } // update the index of key $ki++; if ($ki >= $kl) { $ki = 0; } } } // return the decrypted text return $text; } } ?>
<?php require_once('Crypto.php'); $crypto = new Crypto(); // initialise les variables $key = ""; $code = ""; $error = ""; $valid = true; $file_cle = file(__DIR__ . "/Clef/cle.txt", FILE_IGNORE_NEW_LINES); $file_mondic = file(__DIR__ . "/Clef/mondic.txt", FILE_IGNORE_NEW_LINES); // si le formulaire a été envoyé if ($_SERVER['REQUEST_METHOD'] == "POST") { // set les variables $key = $_POST['key']; $code = $_POST['code']; foreach ($file_cle as $key){ // regarder si le clé a été mis if (empty($_POST['key'])) { $error = "Veuillez entrer une clé!"; $valid = false; } // regarder si la clé a été envoyé else if (empty($_POST['code'])) { $error = "Veuillez entrer du texte à décoder"; $valid = false; } // regarder si la clé est en alphanumeric else if (isset($_POST['key'])) { if (!ctype_alpha($_POST['key'])) { $error = "la clé ne doit que contenir des lettres"; $valid = false; } // regarder si la clé est dans le dictionnaire *utiliser le fichier mondic.txt } else if ($key!==$file_mondic) { $error = "la clé ne se trouve pas dans le dictionnaire"; $valid =false; } //regarder si la clé est dans le fichier cle.txt *utiliser le fichier cle.txt* else if ($key!==$file_cle){ $valid = false; } } } // si le input est valide if ($valid) { // si le bouton encode a été clicker if (isset($_POST['encrypt'])) { $code = $crypto->encoder($key, $code); //$error = "texte encodé!"; } // si le bouton décripter a été clicker if (isset($_POST['decrypt'])) { $code = $crypto->decoder($key, $code); // $error = "texte décodé!"; } }
13 nov. 2019 à 07:30
file(/Clef/mondic.txt): failed to open stream: No such file or directory in F:\progweb\laragon\www\TP2PHP\Encode.php on line 10
Invalid argument supplied for foreach() in F:\progweb\laragon\www\EXPHP\Encode.php on line 18.
13 nov. 2019 à 09:20
13 nov. 2019 à 13:26
13 nov. 2019 à 13:51
13 nov. 2019 à 14:37
Il faut bien que tes fichiers soient nommés correctement... Attentions aux majuscules/minuscules ( en général... il faut éviter d'utiliser des majuscules d'ailleurs... )