Forum de discussion
Forum « Programmation Javascript » (archives)
Re: Password javascript et twAcces
Envoyé: 29 avril 2004, 9h37 par Oznog
J'ai pris le temps de te faire quelque chose de bon, ça va en aider plusieurs.
Cette solution est une méthode bien connu de "hashing". En gros c'est un encodage d'un seul sens. C'est à dire que tu peux encoder mais tu ne peux pas décoder, alors on compare deux mots encodés tout simplement.
Note que c'est possible avec du temps de trouver mais c'est toute une entreprise. Plus la formule est complexe et plus c'est dificile parfois dit impossible comme le "hashing" MD4 ou MD5.
MAIS ATTENTION, un petit détail dans ton code, tu fais ta redirection vers le mots de passe encodé!!!
window.location=password+".html"
Donc vers : 21635165870640000.html que tout le monde peut voir!!! Dans mon exemple j'utilise le mot de passe NON-ENCODÉ que personne ne peut au moins voir.
Alors j'ai automatisé tout ça de façon à ce que tu puisse ajouter un nombre infini de login (note que les mots de passes devront tous être les même si la redirection se fais sur une seule page .html).
Et j'ai ajouter une fonction pour encoder un usager/mot de passe question de rapidement créer de nouveau compte.
Voilà le code complet, le deuxième usager est oznog/trucsweb.
<html>
<head>
<title>Trucsweb - Scripts d'autentification Javascript</title>
<script type="text/javascript" language="javascript">
<!--
// Script gratuit des Trucsweb.com
// Oznog, 29 avril 2004
// Laisser cette remarque s.v.p.
function twUsagers(_nom,_usager,_passe) {
this.nom = _nom;
this.usager = _usager;
this.passe = _passe;
}
aUsagers = new Array(1)
aUsagers[0] = new twUsagers("Admin","2.123169973448384e+22","21635165870640000");
aUsagers[1] = new twUsagers("Webmestre","17030825460","20747995643334960");
function twEncode(_chaine) {
sTemp = _chaine.toLowerCase();
nCode = 1
for(i = 0; i < sTemp.length; i++) {
nCode *= sTemp.charCodeAt(i);
}
return nCode
}
function twAcces(_form) {
bAutorise = false;
sUsager = twEncode(_form.usager.value);
sPasse = twEncode(_form.passe.value);
for (i=0; i<aUsagers.length; i++) {
if ((aUsagers[i].usager==sUsager)&&(aUsagers[i].passe==sPasse)) {
// alert('Bienvenu '+aUsagers[i].nom);
document.location.replace(_form.passe.value+".html");
}
}
}
-->
</script>
</head>
<body>
<form name="twAutentification">
<h3>Autentification</h3>
<p>Entrez votre login : <input type="text" name="usager" size="15"></p>
<p>Entrez votre passe : <input type="password" name="passe" size="15"></p>
<input type="button" value="Envoyer" onclick="twAcces(this.form)">
</form>
<h3>Encoder</h3>
<form name="twEncodage">
<p>Entrez votre login : <input type="text" name="usager2" size="15"></p>
<p>Entrez votre passe : <input type="text" name="passe2" size="15"></p>
<input type="button" value="Encoder" onclick="this.form.usager2.value=twEncode(this.form.usager2.value);this.form.passe2.value=twEncode(this.form.passe2.value);">
</form>
</body>
</html>
Ciao
Oznog
Réponses
|