Cryptage d'un texte complexe, saut de ligne et caractères spéciaux inclus

Soyez le premier à donner votre avis sur cette source.

Vue 12 106 fois - Téléchargée 336 fois

Description

Script permettant de crypter un texte complexe.
ATTENTION :: NIVEAU SECURITÉ C'EST PAS AU TOP HEIN, vous vous en doutez, j'ai fais ça quand je débutait, donc pas de moquage !!
(d'ailleur c'est meme loin d'etre securisé!)
J'ai separé la partie html et la pârtie Javascript pour des raisons... disons qu'il n'y a pas de raison !!
Je met d'abord la partie HTML puis je javascript en dessous.
Pour plus de facilité, telecharger le zip et lancer cryptage.html

Source / Exemple :


// Script par Gagou9 [gagou9_boss@hotmail.com]
// Si vous utilisez ce script, mettez un lien pour mon site s'il vous plait !
// Merci
// nom du fichier : fonctions.js

function crypt(original) {
if(original!=""){
  if(original.indexOf('^')=='-1'){

	original_petit = original.toLowerCase()
	original_escaped = escape(original_petit);
	original_saut_de_ligne_crypte=original_escaped.split('%0D%0A').join('^');
	original_fini = unescape(original_saut_de_ligne_crypte);

// alert('Original :\n' + original_petit)                                                                             \
// alert('Original escaped :\n' + original_escaped)                                                          \
// alert('Original avec les sauts de ligne cryptés :\n' + original_saut_de_ligne_crypte)  |> sert a afficher la progression du pre-cryptage
// alert('Orignal fini, reste plus qu\'a crypter :\n' + original_fini)                                     /

	c=original_fini.length;
	var j = new Array();
	for (i=0;i<c;i++) {
	j[i] = original_fini.substring(i,i+1);
	switch(j[i]){
		case 'ê': j[i]='33'
	        	break;
		case 'û': j[i]='22'
	        	break;
		case 'è': j[i]='87'
			break;
		case '°': j[i]='85'
			break;
		case '`': j[i]='89'
			break;
		case 'a': j[i]='w5'
			break;
		case 'b': j[i]='z9'
			break;
		case 'c': j[i]='8h'
			break;
		case 'd': j[i]='5r'
			break;
		case 'e': j[i]='q4'
			break;
		case 'f': j[i]='if'
			break;
		case 'g': j[i]='v5'
			break;
		case 'h': j[i]='1c'
			break;
		case 'i': j[i]='1h'
			break;
		case 'j': j[i]='b0'
			break;
		case 'k': j[i]='k8'
			break;
		case 'l': j[i]='5m'
			break;
		case 'm': j[i]='a2'
			break;
		case 'n': j[i]='z5'
			break;
		case 'o': j[i]='st'
			break;
		case 'p': j[i]='34'
			break;
		case 'q': j[i]='d5'
			break;
		case 'r': j[i]='s9'
			break;
		case 's': j[i]='b4'
			break;
		case 't': j[i]='dm'
			break;
		case 'u': j[i]='h5'
			break;
		case 'v': j[i]='b5'
			break;
		case 'w': j[i]='tt'
			break;
		case 'x': j[i]='r9'
			break;
		case 'y': j[i]='df'
			break;
		case 'z': j[i]='j4'
			break;
		case '0': j[i]='l4'
			break;
		case '1': j[i]='q5'
			break;
		case '2': j[i]='w8'
			break;
		case '3': j[i]='u5'
			break;
		case '4': j[i]='he'
			break;
		case '5': j[i]='y2'
			break;
		case '6': j[i]='t4'
			break;
		case '7': j[i]='il'
			break;
		case '8': j[i]='t7'
			break;
		case '9': j[i]='kf'
			break;
		case '.': j[i]='h1'
			break;
		case '?': j[i]='gh'
			break;
		case '!': j[i]='h4'
			break;
		case 'é': j[i]='4j'
			break;
		case ',': j[i]='84'
			break;
		case '(': j[i]='41'
			break;
		case ')': j[i]='21'
			break;
		case 'à': j[i]='5b'
			break;
		case '@': j[i]='4d'
			break;
		case '-': j[i]='2n'
			break;
		case '+': j[i]='pl'
			break;
		case '<': j[i]='5j'
			break;
		case '>': j[i]='50'
			break;
		case ' ': j[i]='99'
			break;
		case ':': j[i]='t9'
			break;
		case ';': j[i]='az'
			break;
		case '/': j[i]='00'
			break;
		case '§': j[i]='01'
			break;
		case 'ù': j[i]='08'
			break;
		case '%': j[i]='05'
			break;
		case '*': j[i]='04'
			break;
		case 'µ': j[i]='07'
			break;
		case '?': j[i]='03'
			break;
		case 'ë': j[i]='60'
			break;
		case 'ï': j[i]='06'
			break;
		case '$': j[i]='02'
			break;
		case '£': j[i]='07'
			break;
		case '?': j[i]='09'
			break;
		case '{': j[i]='nn'
			break;
		case '}': j[i]='g8'
			break;
		case '=': j[i]='eg'
			break;
		case '[': j[i]='jc'
			break;
		case ']': j[i]='cj'
			break;
		case 'ç': j[i]='éè'
			break;
		case '\\': j[i]='èé'
			break;
		case '|': j[i]='qq'
			break;
		case '\'': j[i]='ff'
			break;
		case '\"': j[i]='çà'
			break;
		case '#': j[i]='àç'
			break;
		case '~': j[i]='éé'
			break;
		case '&': j[i]='èè'
			break;
		case '^': j[i]='an'
			break;
		case '_': j[i]='ti'
			break;
		default : alert('Erreur dans le Switch\nCaractère non pris en charge : \''+j[i]+'\'\nVeuillez le remplacer !\nCe caractère sera codé en \'88\'')
			  j[i]='88'
		}
	document.forms[0].crypte.value += j[i]
	}
  }
  else{ alert('\nJ\'ai dit PAS DE CHAPEAU') }
}
else{document.forms[0].crypte.value=""}
}
function copy2Clipboard(obj)
	{
  	var textRange = document.body.createTextRange();
  	textRange.moveToElementText(obj);
  	textRange.execCommand("Copy");
	}
function decrypt(b) {
if(b!=""){
	b_long=b.length;
	b_lower=b.toLowerCase()
	var k = new Array();
	for (z=0;z<b_long;z=z+2) {
	k[z] = b_lower.substring(z,z+2);
	switch(k[z]){
		case 'w5': k[z]='a'
			break;
		case 'z9': k[z]='b'
			break;
		case '8h': k[z]='c'
			break;
		case '5r': k[z]='d'
			break;
		case 'q4': k[z]='e'
			break;
		case 'if': k[z]='f'
			break;
		case 'v5': k[z]='g'
			break;
		case '1c': k[z]='h'
			break;
		case '1h': k[z]='i'
			break;
		case 'b0': k[z]='j'
			break;
		case 'k8': k[z]='k'
			break;
		case '5m': k[z]='l'
			break;
		case 'a2': k[z]='m'
			break;
		case 'z5': k[z]='n'
			break;
		case 'st': k[z]='o'
			break;
		case '34': k[z]='p'
			break;
		case 'd5': k[z]='q'
			break;
		case 's9': k[z]='r'
			break;
		case 'b4': k[z]='s'
			break;
		case 'dm': k[z]='t'
			break;
		case 'h5': k[z]='u'
			break;
		case 'b5': k[z]='v'
			break;
		case 'tt': k[z]='w'
			break;
		case 'r9': k[z]='x'
			break;
		case 'df': k[z]='y'
			break;
		case 'j4': k[z]='z'
			break;
		case 'l4': k[z]='0'
			break;
		case 'q5': k[z]='1'
			break;
		case 'w8': k[z]='2'
			break;
		case 'u5': k[z]='3'
			break;
		case 'he': k[z]='4'
			break;
		case 'y2': k[z]='5'
			break;
		case 't4': k[z]='6'
			break;
		case 'il': k[z]='7'
			break;
		case 't7': k[z]='8'
			break;
		case 'kf': k[z]='9'
			break;
		case 'h1': k[z]='.'
			break;
		case 'gh': k[z]='?'
			break;
		case 'h4': k[z]='!'
			break;
		case '4j': k[z]='é'
			break;
		case '84': k[z]=','
			break;
		case '41': k[z]='('
			break;
		case '21': k[z]=')'
			break;
		case '5b': k[z]='à'
			break;
		case '4d': k[z]='@'
			break;
		case '2n': k[z]='-'
			break;
		case '5j': k[z]='<'
			break;
		case '50': k[z]='>'
			break;
		case '99': k[z]=' '
			break;
		case 't9': k[z]=':'
			break;
		case 'az': k[z]=';'
			break;
		case '00': k[z]='/'
			break;
		case '01': k[z]='§'
			break;
		case '08': k[z]='ù'
			break;
		case '05': k[z]='%'
			break;
		case '04': k[z]='*'
			break;
		case '07': k[z]='µ'
			break;
		case '03': k[z]='?'
			break;
		case '60': k[z]='ë'
			break;
		case '06': k[z]='ï'
			break;
		case '02': k[z]='$'
			break;
		case '07': k[z]='£'
			break;
		case '09': k[z]='?'
			break;
		case 'nn': k[z]='{'
			break;
		case 'g8': k[z]='}'
			break;
		case 'eg': k[z]='='
			break;
		case 'jc': k[z]='['
			break;
		case 'cj': k[z]=']'
			break;
		case 'éè': k[z]='ç'
			break;
		case 'èé': k[z]='\\'
			break;
		case 'qq': k[z]='|'
			break;
		case 'ff': k[z]='\''
			break;
		case 'çà': k[z]='\"'
			break;
		case 'àç': k[z]='#'
			break;
		case 'éé': k[z]='~'
			break;
		case 'èè': k[z]='&'
			break;
		case 'an': k[z]='\n'
			break;
		case 'ti': k[z]='_'
			break;
		case 'pl': k[z]='+'
			break;
		case '89': k[z]='`'
			break;
		case '87': k[z]='è'
			break;
		case '85': k[z]='°'
			break;
		case '33': k[z]='ê'
			break;
		case '22': k[z]='û'
			break;
		case '88': alert('\n\n\n\n\n\n\n\n        Un code \'88\' a été retourné,       \n        Cela est du à un caractère non codé.\t\t\n\n\n\n\n\n\n\n')
		    break;
		default : alert('Erreur dans le Switch ou\nCode non reconnu : \''+k[z]+'\'\nVeuillez vérifier votre code!');
		}
	document.forms[0].crypte.value += k[z]
	}
}
else{document.forms[0].crypte.value="vide"}
}

//Fin du code javascript

Conclusion :


Pour modifier la table de cryptage il faut changer les valeurs du switch (attention il faut mettre les memes valeurs dans les 2 : celui pour crypter et celui pour decrypter !!)
mon site n'est plus valide.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_gagou9
Messages postés
128
Date d'inscription
vendredi 19 septembre 2003
Statut
Membre
Dernière intervention
20 novembre 2007
-
Salut !
OUAOU !
ça faisait pas mal de temps que j'avais pas vu cette source, et effectivement, elle n'est pas bien valable... loool
j'ai carrément progressé depuis le jour ou j'ai fait cette source (hum, je devai etre en 2nd, et la chui en terminale), donc je comprend tout a fai vo comments, meme si je connais pas grand chose en cryptage.

je vai prevenir dans la source que c'est de la merde au niveau securite !

salut !
kankrelune
Messages postés
1305
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015
-
Coucou relis mon post... à aucun moment je ne parle de ta source... .. . :o)

@ tchaOo°
coucou747
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
27 -
kancrelune, regarde mon post, plus haut... ma source cpp marche parfaitement, mais elle est valable pour toutes les méthodes de substitutions....
kankrelune
Messages postés
1305
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015
-
Par "mise en forme" valeriejarl parle des majuscules... .. .

@ tchaOo°
kankrelune
Messages postés
1305
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015
-
Ne prennez pas ce genre de source pour crypter un texte... ça se décrypte en à peine deux minutes !!!

Tapez blowfish, des ou xtea dans google vous trouverez des versions js de ces algorythms qui sont de vrai algorythm eux... .. .

gagou9 je ne veux pas dénigrer ton boulot mais sais tu ce qu'est la cryptographie ? qu'est qu'un algorythm à clée publique ? à clée privé ? un algorythm symétrique ? asymétrique ? un algorythm de block ? en mode stream ? le principe de xor ? les tables de permutations (s-box, k-box, g-box)... .. ?

Comprend tu ce code...

var sum = 0;
var delta = 0x9E3779B9;

while (n-- > 0)
{
sum += delta;
y += (z << 4) + a ^ z + sum ^ (z >>> 5) + b;
z += (y << 4) + c ^ y + sum ^ (y >>> 5) + d;
}

C'est la base de l'aglo Xtea (eXtend Tiny Ecryption Algorythm)... .. .

Il est bien de proposer des scripts mais en terme de sécurité il ne faut pas proposer n'importe quoi car si quelqu'un de moins expérimenté prend ce script il s'expose à de gros problème si les données qu'il veut protéger sont vraiment sensible... .. .

Cordialement

@ tchaOo°

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.