As3-asciitextencryptor - cryptage / décryptage de texte ascii (cs4)

Description

Introduction à l'encodage de texte au format ASCII avec code commenté et fonctions flexible. Tout est dans la source que je vous laisse découvrir.

Source / Exemple :


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 = "";
};

Conclusion :


Enjoy !

Codes Sources

A voir également

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.