Soyez le premier à donner votre avis sur cette source.
Vue 7 362 fois - Téléchargée 381 fois
masterKey.text = "VotreMasterKey"; /// Texte de la masterKey. infosTexte.text = "Bienvenue,\nASCII Text Encryptor By JALF."; /// Texte Infos d'intro. Texte.text = "Legi, Patres colendissimi, in Arabum monumentis, interrogatum Abdalam 1 Sarracenum, quid in hac quasi mundana scaena admirandum maxime spectaretur, nihil spectari homine admirabilius respondisse. "; /// ^Texte Pour Essai.^ ////////////////////////////////////// // CRYPTAGE // ////////////////////////////////////// function crypte(txt:String, clef:String) { /// Fontion cryptage avec en arguments le "txt" à coder et la "clef" (voir ligne 89). clearInterval(attenteInterval); /// Arrêt de l'interval de 100ms. TexteCode.text = ""; /// Effacement de la zone texte de destination. ClefsCodage = new Array(); /// Declaration du tableau pour récupéré les variable ASCII de la "masterKey". for (i=0; i<clef.length; i++) { /// Pour chaque caractére de la "clef" a partir du premier (0), et jusque qu'a ça derniére lette : var lettreClef:String = clef.substr(i, 1); /// Je déclare une variable "lettreClef"qui recupére le dit caractére, var codeLettreASCII:Number = lettreClef.charCodeAt(0); /// je déclare une variable qui récupére le code ASCII du caractére ClefsCodage.push(codeLettreASCII); /// et enfin je place le code caractére ASCII dans mon tableau. } j = 0; /// Mise à Zero de "j". for (i=0; i<=txt.length; i++) { /// Pour chaque caractére du "txt" a partir du premier (0), et jusque qu'a ça derniére lettre : if ( i == txt.length){ /// Si "i" a ateint la derniére lettre, infosTexte.text = "Codage terminé."; /// j'indique que l'encodage est terminé. } else { /// Sinon, var lettre:String = txt.substr(i, 1); /// je récupére le caractére dans une variable, var codeASCII :String = lettre.charCodeAt(0); /// je récupére le code ASCII du dit caractére dans une autre variable, var codeCrypter:Number = Number(codeASCII)+Number(ClefsCodage[j]); /// puis j'additionne le code ASCII du caractére "txt" et du caractére "clef" en cours. j++; /// j'implemente "j" pour atteindre à la prochaine boucle le prochain caractére "clef". if (j == (ClefsCodage.length-1)) {/// si "j" dépasse le nombre de caractére de la "clef". j = 0; /// remise à zero de "j". } /// Pour avoir un code caractére ASCII qui a toujours 3 chiffre je vérifie sont format : if (codeCrypter<10) { /// si le code ASCII est inférieur a la 10ène , codeASCIIEncode = "00"+codeCrypter;/// je lui met deux "0" devant. } else if (codeCrypter<100) { /// Si le code ASCII est inférieur à la 100ène , codeASCIIEncode = "0"+codeCrypter; /// je lui met un seul "0" devant. } else { /// Sinon, codeASCIIEncode = codeCrypter; /// alors. } TexteCode.appendText(codeASCIIEncode); /// Puis pour finir j'implémente au fur et à mesure, chaque code ASCII de 3 caractére dans le texte de destination. } } }; ////////////////////////////////////// // DECRYPTAGE // ////////////////////////////////////// function decrypte(txt:String, clef:String) { /// Fontion décryptage avec en arguments le "txt" à décoder et la "clef" (voir ligne 105). clearInterval(attenteInterval); /// Arrêt de l'interval de 100ms. Texte.text = ""; /// Effacement de la zone texte de destination. ClefsCodage = new Array(); /// Declaration du tableau pour récupéré les variable ASCII de la "masterKey". for (i=0; i<clef.length; i++) {/// Pour chaque caractére de la "clef" a partir du premier (0), et jusque qu'a ça derniére lette : var lettreClef:String = clef.substr(i, 1); /// Je déclare une variable "lettreClef"qui recupére le dit caractére, var codeLettreASCII:Number = lettreClef.charCodeAt(0); /// je déclare une variable qui récupére le code ASCII du caractére ClefsCodage.push(codeLettreASCII); /// et enfin je place le code caractére ASCII dans mon tableau. } j = 0; /// Mise à Zero de "j". for (i=0; i<=(txt.length); i += 3) { /// Pour chaque code ASCII de 3 chiffres a partir du premier (0), et jusqu'au qu'au dernier : if ( i == (txt.length)){ /// Si "i" a ateint la derniére lettre, infosTexte.text = "Décodage terminé."; /// j'indique que le decodage est terminé. } else { /// Sinon, var codeCrypter:String = txt.substr(i, 3); /// je récupére le code ASCII de 3 chiffre dans une variable, var codeLettreDecrypter:Number = Number(codeCrypter)-Number(ClefsCodage[j]); /// je soustrait le code caractére ASCII et le code ASCII du caractére "clef" en cours pour récupéré le code réel, var lettreDecrypter:String = String.fromCharCode(codeLettreDecrypter);/// je récupére le véritable caractére par son code ASCII, Texte.appendText(lettreDecrypter); /// j'implémente le caractére récupéré dans la zone texte de destination, j++; /// j'implemente "j" pour atteindre à la prochaine boucle le prochain caractére "clef". if (j == (ClefsCodage .length-1)) { /// si "j" dépasse le nombre de caractére de la "clef". j = 0; /// remise à zero de "j". } } } }; ////////////////////////////////////// // ACTIONS BT "Coder" // ////////////////////////////////////// bt_coder.addEventListener(MouseEvent.CLICK, codeText); /// Ecouteur du bonton "Coder". function codeText (e:MouseEvent):void { /// Fonction du bonton "Coder". if ( masterKey.text == ""){ /// Si la "MasterKey" est vide, infosTexte.text = 'Veuillez entrer une "MasterKey".' ; /// alors. } else if ( Texte.text == ""){ /// Si le "Texte :" à coder est vide, infosTexte.text = 'Veuillez entrer un texte à encoder dans "Texte : ".'; /// alors. } else { /// Sinon, infosTexte.text = "Codage en cours,\nVeuillez patienter..."; /// alors, attenteInterval = setInterval(crypte, 100, Texte.text, masterKey.text); /// et lancement de la fonction de cryptage "crypte" après 100ms, /// avec comme arguments le "txt" et la "clef". } }; ////////////////////////////////////// // ACTIONS BT "Coder" // ////////////////////////////////////// bt_decoder.addEventListener(MouseEvent.CLICK, decodeText); /// Ecouteur du bonton "Décoder". function decodeText (e:MouseEvent):void { /// Fonction du bonton "Décoder". if ( masterKey.text == ""){ /// Si la "MasterKey" est vide, infosTexte.text = 'Veuillez entrer une "MasterKey".'; /// alors. } else if ( TexteCode.text == ""){ /// Si le "Texte :" à coder est vide, infosTexte.text = 'Veuillez entrer un texte à décoder dans "Texte Codé : ".'; /// alors. } else { /// Sinon, infosTexte.text = "Décodage en cours,\nVeuillez patienter..."; attenteInterval = setInterval(decrypte, 100, TexteCode.text, masterKey.text); /// et lancement de la fonction de décryptage "decrypte" après 100ms, /// avec comme arguments le "txt" et la "clef". } }; //////////////////////////////////////////// // ACTIONS DES BTs "Effacer" // //////////////////////////////////////////// bt_efftexte.addEventListener(MouseEvent.CLICK, effTexte); /// Ecouteur du bonton "Texte :"/ "Effacer". function effTexte (e:MouseEvent):void { /// Fonction du bonton "Texte :"/ "Effacer". Texte.text = ""; }; bt_efftextecode.addEventListener(MouseEvent.CLICK, effTexteCode); /// Ecouteur du bonton "Texte Codé :"/ "Effacer". function effTexteCode (e:MouseEvent):void { /// Fonction du bonton "Texte Codé :"/ "Effacer". TexteCode.text = ""; };
27 mai 2010 à 21:58
http://www.flashkod.com/codes/CRYPTEUR-DECRYPTEUR-TEXTE-AVEC-CLE-CRYPTAGE_33420.aspx.
30 mai 2010 à 14:03
3 juin 2010 à 20:30
quelque amélioration s'impose :
exemple les Numbers remplaçable par int, ou encore déclarer des variables en dehors des boucles, sans oublier :
var lettreClef:String clef.substr(i, 1); // clef.charAt(i) aussi ...
var codeLettreASCII:Number = lettreClef.charCodeAt(0);
remplaçable par :
var codeLettreASCII:uint = clef.charCodeAt(i);
4 juin 2010 à 07:55
Sachant qu'ils sont aussi codés sur 32 bits et que leurs traitement est plus lent que les int directement.
Peg'
4 juin 2010 à 23:32
Pegase31:
c'est surtout une question de mémoire ... un uint est moins lourd qu'un int, qui l'est encore moins qu'un Number ... pour ce qui est de la rapidité, ce sont tout les 3 des chiffres, donc quesiton "rapidité", je doute qu'il y ait des différences.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.