Codage dur a dechiffrer

Soyez le premier à donner votre avis sur cette source.

Snippet vu 14 981 fois - Téléchargée 24 fois

Contenu du snippet

Suite à une suggestion sur mon tutorial, (http://www.javascriptfr.com/tutoriaux/PROTEGER-PAGE-MOT-PASSE_431.aspx) j'ai décidé de créer ce petit code.
Il prend le prmier caractère d'une chaine et le note en fonction de sa position sur la chaine "char". il fait pareil jusqu'au dernier.
ensuite avec cette suite de chiffre, il prend le premier, le multiplie par le deuxième et l'ajoute au troisième. il fait pareil jusqu'a la fin.
l'avantage de ce codage, c'est que si jamais on fait le calcul inverse, il y aura plusieurs possibilitées. exemple :
16=(1*1+4)*3-1+1 ou (1*2+1)*5-2+1 ou (2*2+0)*2-1+3 etc...
ce qui rend l'opération inverse très longue a faire.
inconvénient ; plusieurs mot de passe peuvent marcher.

Source / Exemple :


function encoder(encodechaine)
{
	if(encodechaine.length>4)
	{
		var char="abcdefghijklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ0123456789-+*/²&é\"'(-è_çà)=~#{[|`\\^@]}$¤£*µù%^¨!§:;,? "
		var numberstring="";
		var encodedstring1="";
		var encodedstring2="";
		for(nb=0;nb<encodechaine.length;nb++)
		{
			numberstring+=char.indexOf(encodechaine.charAt(nb));
		}
		for(nb=0;nb<numberstring.length-5;nb++)
		{
			encodedstring1+=(n(nb)*n(nb+1)+n(nb+2))*n(nb+3)-n(nb+4)+n(nb+5);
		}	
		for(i=0;i<numberstring.length-5;i++)
		{
			encodedstring2+=(n(i)+n(i+4)*(n(i+2)+n(i+3))-n(i+5);
		}
		return encodedstring1+encodedstring2;
	}
	else
	{
		alert("chaine trop courte (minimum 5 caractères)");return null;
	}
}
var n=function(nombre){return numberstring.charAt(nombre)};

A voir également

Ajouter un commentaire Commentaires
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

pourquoi vouloir réinventer la roue... le md5 et le sha1 font très bien l'affaire pour ce genre de chose... .. .

@ tchaOo°
Messages postés
450
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
18 avril 2007
2
je viens d'avoir une idée, on a qu'a faire un deuxième hash mais pas avec le meme algorithme, et on l'ajoute au premier, comme ça sa réduit encore les chances.
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

Le problème ce n'est pas que l'on ne peut pas décoder le hasch, c'est le principe du hasch... haschage et cryptage n'ont pas la même finalité... le problème comme dit kenicky_marouf vient du fait que plusieurs chaines différentes auront le même hasch... donc autant utiliser md5 ou sha1 qui présentent beaucoups moins de risque de rejeu... .. .

@ tchaOo°
Messages postés
450
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
18 avril 2007
2
oui, c'est l'inconvénient, on ne peut pas décoder inversement, mais il y a d'autres mot de passe qui marchent. mais en augmentant la concaténation, on diminue les risques de tomber 2 fois sur un meme nombre pour deux mot de passe différent.
Messages postés
1
Date d'inscription
vendredi 30 juin 2006
Statut
Membre
Dernière intervention
30 juin 2006

en effet, le probleme avec ton code c'est qu'il n'empeche pas le rejeu
si tu scans le reseau et que tu vois passer un couple login/password avec un password hashé de cette facon, il est possible de fabriquer une requete en envoyant le login et le hash du password ... et l'acces passe
tu ne connais pas le mot de passe en clair mais tu n'en as pas besoin en fait
c'est pour ca qu'il faut toujours envoyer un aleatoire avec et hashé par exemple, et apres tu hashs la concatenantion de l'aleatoire et du mot de passe ... l'aleatoire changeant ce n'est plus possible de "rejouer la trame" ...
Afficher les 9 commentaires

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.