Accueil > > > CRYPTEUR / DÉCRYPTEUR DE TEXTE AVEC CLÉ DE CRYPTAGE
CRYPTEUR / DÉCRYPTEUR DE TEXTE AVEC CLÉ DE CRYPTAGE
Information sur la source
Description
Donc voilà ma deuxième source : C'est un crypteur / décrypteur de mot de passe (je dit "crypteur"... mais c'est un grand mot quand même :)) Il utilise une clé de cryptage choisi par l'utilisateur pour crypter le texte voulut. On peut choisir d'avoir le résultats sour forme de chiffres ou sous forme de caractères (c'est pour le fun :p mais sous formes de caractères le résultat est beaucoup plus court donc plus pratique, surtout que le temps de cryptage / décryptage est proportionnel à la taille du texte entré (car le code analyse le texte caractère par caractère). Le principe n'est pourtant pas très compliqué (mais très éfficace :)) : On entre dans un tableau les valeurs ASCII de chaques caractères de la clé, on analyse le texte entré et on récupère chaque code ASCII du texte, enfin on ajoute tour a tour un une valeur ASCII de la clé à une valeur du texte ! Voila c'est "crypté" ! Pour renforcer la sécurité, entre chaque caractère du texte crypté on ajoute un caractère aléatoir qui n'apparaitra pas lors du décryptage :) Tous est expliqué dans le code, je me suis éfforcer de le commenter au maximum !
Source
- ///////////////////////////////////////////////////////////////////////////////////
- ///////////// /////////////
- ///////////// Crypteur / Décrypteur de texte by DarkGoovyX /////////////
- ///////////// /////////////
- ///////////////////////////////////////////////////////////////////////////////////
- //
- //
- //
- //Focntion qui permet de crypter le texte sous forme de chiffres :
- crypte = function (txt, cle) {
- result.text = "";
- // On créé un nouveau tableu qui contiendra les code ASCII de la cle :
- lesCle = new Array();
- // On complète le tableau :
- for (i=0; i<cle.length; i++) {
- lettreCle = cle.substr(i, 1);
- algoASCII = ord(lettreCle);
- lesCle.push(algoASCII);
- }
- j = 0;
- for (i=0; i<txt.length; i++) {
- // On définit une lettre au hasard placer entre chaque lettre sous forme crypté : (renforce le cryoptage :))
- lettreFactice = string.fromCharCode(random(256));
- // On selectionne la lettre a analyser :
- lettre = txt.substr(i, 1);
- // On la converti en code ASCII :
- codeASCII = ord(lettre);
- // On crypte cette lettre en ajoutan a son code ASCII, celui d'une des lettres de la cle :
- codeCrypter = Number(codeASCII)+Number(lesCle[j]);
- // On passe au code ASCII de la cle suivant :
- j++;
- // Si on à passer toutes les lettres de la cle en vu, on recommence :
- if (j == (lesCle.length-1)) {
- j = 0;
- }
- // On s'arange pour que quelque soit le code ASCII, il comporte 3 chiffre au final :
- if (codeCrypter<10) {
- codeASCIIEncode = "00"+codeCrypter;
- } else if (codeCrypter<100) {
- codeASCIIEncode = "0"+codeCrypter;
- } else {
- codeASCIIEncode = codeCrypter;
- }
- // On ajoute le code modifier ainsi que la lettre factice au resultat :
- result.text += codeASCIIEncode;
- result.text += lettreFactice;
- }
- };
- //
- //
- //Fonction qui permet de décrypter un texte crypter avec un cryotage type lettre :
- decrypte = function (txt, cle) {
- result.text = "";
- // Pareil que précédement :
- lesCle = new Array();
- // On complète le tableau :
- for (i=0; i<cle.length; i++) {
- lettreCle = cle.substr(i, 1);
- algoASCII = ord(lettreCle);
- lesCle.push(algoASCII);
- }
- // On récupère un à un les code ASCII du texte encrypté :
- j = 0;
- // Le i += 4 permet de paC de série de 3 en série de troi tout en sautant le caractère factice :
- for (i=0; i<(txt.length); i += 4) {
- codeCrypter = txt.substr(i, 3);
- // On converti le code rencontré en caractère :
- lettreCrypter = string.fromCharCode(codeCrypter);
- // On transforme le code du caractère cryopter en code décrypter :
- codeLettreDecrypter = Number(codeCrypter)-Number(lesCle[j]);
- lettreDecrypter = string.fromCharCode(codeLettreDecrypter);
- // On l'ajoute à la liste :
- result.text += lettreDecrypter;
- j++;
- if (j == (lesCle.length-1)) {
- j = 0;
- }
- }
- };
- //Pour les deux fonctionsuivantes, le principe est le même que pour les précédentes, je ne recommente donc pas tout :)
- crypteurLettre = function (txt, cle) {
- result.text = "";
- // On créé un nouveau tableu qui contiendra les code ASCII de la cle :
- lesCle = new Array();
- // On complète le tableau :
- for (i=0; i<cle.length; i++) {
- lettreCle = cle.substr(i, 1);
- algoASCII = ord(lettreCle);
- lesCle.push(algoASCII);
- }
- j = 0;
- for (i=0; i<txt.length; i++) {
- lettreFactice = string.fromCharCode(random(256));
- // On selectionne la lettre a analyser :
- lettre = txt.substr(i, 1);
- // On la converti en code ASCII :
- codeASCII = ord(lettre);
- // On crypte cette lettre en ajoutan a son code ASCII, celui d'une des lettres de la cle :
- codeCrypter = Number(codeASCII)+Number(lesCle[j]);
- // On passe au code ASCII de la cle suivant :
- j++;
- // Si on à passer toutes les lettres de la cle en vu, on recommence :
- if (j == (lesCle.length-1)) {
- j = 0;
- }
- lettreCrypter = string.fromCharCode(codeCrypter);
- // trace(codeASCIIEncode);
- result.text += lettreCrypter;
- result.text += lettreFactice;
- }
- };
- //
- decrypteurLettre = function (txt, cle) {
- result.text = "";
- lesCle = new Array();
- // On complète le tableau :
- for (i=0; i<cle.length; i++) {
- lettreCle = cle.substr(i, 1);
- algoASCII = ord(lettreCle);
- lesCle.push(algoASCII);
- }
- // On récupère un à un les code ASCII du texte encrypté :
- j = 0;
- for (i=0; i<(txt.length); i += 2) {
- codeCrypter = txt.substr(i, 1);
- lettreCrypter = ord(codeCrypter);
- codeLettreDecrypter = Number(lettreCrypter)-Number(lesCle[j]);
- lettreDecrypter = string.fromCharCode(codeLettreDecrypter);
- result.text += lettreDecrypter;
- j++;
- if (j == (lesCle.length-1)) {
- j = 0;
- }
- }
- };
- //
- //Actio nsur le bouton "traiter" :
- //
- bt_valide.onRelease = function() {
- //Si la clé est définis :
- if (_root.cle !== "" and _root.cle !== undefined) {
- //Si cryptageLettre est coché :
- if (cryptageLettre.getState() == true) {
- //Si une des deux "action" est coché :
- if (crypt.getState() == true) {
- crypteurLettre(_root.texte_a_traiter, _root.cle);
- } else if (decrypt.getState() == true) {
- decrypteurLettre(_root.texte_a_traiter, _root.cle);
- } else {
- result.text = "";
- result.text = "Il faut choisir une action à effectuer";
- }
- //Si cryptageChifreest coché :
- } else if (cryptageChiffres.getState() == true) {
- //Si une des deux "action" est coché :
- if (crypt.getState() == true) {
- crypte(_root.texte_a_traiter, _root.cle);
- } else if (decrypt.getState() == true) {
- decrypte(_root.texte_a_traiter, _root.cle);
- } else {
- result.text = "";
- result.text = "Il faut choisir une action à effectuer";
- }
- } else {
- result.text = "";
- result.text = "Il faut choisir un type de cryptage";
- }
- } else {
- result.text = "";
- result.text = "Il manque la clé de cryptage";
- }
- };
///////////////////////////////////////////////////////////////////////////////////
///////////// /////////////
///////////// Crypteur / Décrypteur de texte by DarkGoovyX /////////////
///////////// /////////////
///////////////////////////////////////////////////////////////////////////////////
//
//
//
//Focntion qui permet de crypter le texte sous forme de chiffres :
crypte = function (txt, cle) {
result.text = "";
// On créé un nouveau tableu qui contiendra les code ASCII de la cle :
lesCle = new Array();
// On complète le tableau :
for (i=0; i<cle.length; i++) {
lettreCle = cle.substr(i, 1);
algoASCII = ord(lettreCle);
lesCle.push(algoASCII);
}
j = 0;
for (i=0; i<txt.length; i++) {
// On définit une lettre au hasard placer entre chaque lettre sous forme crypté : (renforce le cryoptage :))
lettreFactice = string.fromCharCode(random(256));
// On selectionne la lettre a analyser :
lettre = txt.substr(i, 1);
// On la converti en code ASCII :
codeASCII = ord(lettre);
// On crypte cette lettre en ajoutan a son code ASCII, celui d'une des lettres de la cle :
codeCrypter = Number(codeASCII)+Number(lesCle[j]);
// On passe au code ASCII de la cle suivant :
j++;
// Si on à passer toutes les lettres de la cle en vu, on recommence :
if (j == (lesCle.length-1)) {
j = 0;
}
// On s'arange pour que quelque soit le code ASCII, il comporte 3 chiffre au final :
if (codeCrypter<10) {
codeASCIIEncode = "00"+codeCrypter;
} else if (codeCrypter<100) {
codeASCIIEncode = "0"+codeCrypter;
} else {
codeASCIIEncode = codeCrypter;
}
// On ajoute le code modifier ainsi que la lettre factice au resultat :
result.text += codeASCIIEncode;
result.text += lettreFactice;
}
};
//
//
//Fonction qui permet de décrypter un texte crypter avec un cryotage type lettre :
decrypte = function (txt, cle) {
result.text = "";
// Pareil que précédement :
lesCle = new Array();
// On complète le tableau :
for (i=0; i<cle.length; i++) {
lettreCle = cle.substr(i, 1);
algoASCII = ord(lettreCle);
lesCle.push(algoASCII);
}
// On récupère un à un les code ASCII du texte encrypté :
j = 0;
// Le i += 4 permet de paC de série de 3 en série de troi tout en sautant le caractère factice :
for (i=0; i<(txt.length); i += 4) {
codeCrypter = txt.substr(i, 3);
// On converti le code rencontré en caractère :
lettreCrypter = string.fromCharCode(codeCrypter);
// On transforme le code du caractère cryopter en code décrypter :
codeLettreDecrypter = Number(codeCrypter)-Number(lesCle[j]);
lettreDecrypter = string.fromCharCode(codeLettreDecrypter);
// On l'ajoute à la liste :
result.text += lettreDecrypter;
j++;
if (j == (lesCle.length-1)) {
j = 0;
}
}
};
//Pour les deux fonctionsuivantes, le principe est le même que pour les précédentes, je ne recommente donc pas tout :)
crypteurLettre = function (txt, cle) {
result.text = "";
// On créé un nouveau tableu qui contiendra les code ASCII de la cle :
lesCle = new Array();
// On complète le tableau :
for (i=0; i<cle.length; i++) {
lettreCle = cle.substr(i, 1);
algoASCII = ord(lettreCle);
lesCle.push(algoASCII);
}
j = 0;
for (i=0; i<txt.length; i++) {
lettreFactice = string.fromCharCode(random(256));
// On selectionne la lettre a analyser :
lettre = txt.substr(i, 1);
// On la converti en code ASCII :
codeASCII = ord(lettre);
// On crypte cette lettre en ajoutan a son code ASCII, celui d'une des lettres de la cle :
codeCrypter = Number(codeASCII)+Number(lesCle[j]);
// On passe au code ASCII de la cle suivant :
j++;
// Si on à passer toutes les lettres de la cle en vu, on recommence :
if (j == (lesCle.length-1)) {
j = 0;
}
lettreCrypter = string.fromCharCode(codeCrypter);
// trace(codeASCIIEncode);
result.text += lettreCrypter;
result.text += lettreFactice;
}
};
//
decrypteurLettre = function (txt, cle) {
result.text = "";
lesCle = new Array();
// On complète le tableau :
for (i=0; i<cle.length; i++) {
lettreCle = cle.substr(i, 1);
algoASCII = ord(lettreCle);
lesCle.push(algoASCII);
}
// On récupère un à un les code ASCII du texte encrypté :
j = 0;
for (i=0; i<(txt.length); i += 2) {
codeCrypter = txt.substr(i, 1);
lettreCrypter = ord(codeCrypter);
codeLettreDecrypter = Number(lettreCrypter)-Number(lesCle[j]);
lettreDecrypter = string.fromCharCode(codeLettreDecrypter);
result.text += lettreDecrypter;
j++;
if (j == (lesCle.length-1)) {
j = 0;
}
}
};
//
//Actio nsur le bouton "traiter" :
//
bt_valide.onRelease = function() {
//Si la clé est définis :
if (_root.cle !== "" and _root.cle !== undefined) {
//Si cryptageLettre est coché :
if (cryptageLettre.getState() == true) {
//Si une des deux "action" est coché :
if (crypt.getState() == true) {
crypteurLettre(_root.texte_a_traiter, _root.cle);
} else if (decrypt.getState() == true) {
decrypteurLettre(_root.texte_a_traiter, _root.cle);
} else {
result.text = "";
result.text = "Il faut choisir une action à effectuer";
}
//Si cryptageChifreest coché :
} else if (cryptageChiffres.getState() == true) {
//Si une des deux "action" est coché :
if (crypt.getState() == true) {
crypte(_root.texte_a_traiter, _root.cle);
} else if (decrypt.getState() == true) {
decrypte(_root.texte_a_traiter, _root.cle);
} else {
result.text = "";
result.text = "Il faut choisir une action à effectuer";
}
} else {
result.text = "";
result.text = "Il faut choisir un type de cryptage";
}
} else {
result.text = "";
result.text = "Il manque la clé de cryptage";
}
};
Conclusion
J'ai conscience que le code est un peu long mais deux fonctions sont facultatives, à vous d'en faire ce que vous voulez :) Sans la clé il est impossible de décrypter quoi que se soit. Attention au trop long texte, le cryptage risque de prendre un peu de temps lol
PS : désolé pour l'emplois un peu abusif du mot "cryptage" lol ;)
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
load xml + cryptage décryptage [ par actaruss ]
Bonjour à tous,J'ai un gros problème avec un fichier xml...Voilà, j'ai un swf en falsh qui loade des questions depuis un fichier xml :Le soucis est qu
Question sur un problème de sécurité [ par gwa2 ]
Bonjour, j'ai un problème de sécurité avec mon application web/flash et je me demande ou chercher. Donc, de mon poste j'appelle un index.htm sur un s
Chui creuvée! ....truc 2 Sécurité! [ par marycool1 ]
Bonjour tt l'monde!J'ai un problème de Temporary internet files!J'veux pas que mes swf figurent dans la cache du Temporary internet files. J'ai vu pa
applet et sécurité [ par magicsmacks ]
Bonjour, Voilà je dois rendre un devoir à la fac sous la forme d'un CD. J'ai créé pour cela un site internet qui se lance en autorun. Site auquel j'a
Problème de cryptage d'un XML [ par remilafouine ]
Bonjour à tous !Voilà. Je souhaite faire une application en Flash à démarrer sur un CD-Rom, autonome, mais paramétrable, d'où l'utilisation d'un fichi
sécurité flash [ par aaaaammounti ]
je veux sécurisé mon swf,j'ai un swf qui récupere leur variable d'un fichier xml(dynamique),mais malheureusement j'ai trouvé les paramétre dans les fi
Cryptage XOR sous php et flash [ par lorry1993 ]
Bonjour à tous ,Je tente de faire un echange variables entre PHP et Flash. Pour éviter de passer les variables en clair (variables personelles) j'ai
problème protection swf [ par kochis ]
bonjour,J'ai un petit problème, je me suis fait piquer un png qui était sur mon .swf sur mon site.Il y a t'il un moyen pour protégé mon fichier?merci
RSA et DES dans Flash [ par Gastaropod ]
Bonjour,J'aimerais savoir si il existe dans Flash (AS1, AS2, AS3...) des classes déjà existantes liées au système de cryptage RSA et DES.En réalité j'
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|