Newsgroup: it.comp.lang.javascript
Titolo: Aiuto per password

Ciao a tutti,
ho bisogno di creare delle password per far accedere ad una parte del mio
sito le persone autorizzate, come posso fare in javascript ?
Tenete presente che le password devono essere diverse per ogni persona.
Grazie a tutti.
Marco

...

Unisco tre diverse mail che ho postato tempo fa
a una persona che chiedeva la stessa cosa:
--------MESSAGGIO 1---------------------------
Il seguente script usa la password inserita  in
un form per determinare il nome di una
pagina "segreta", il nome non appare in
alcun modo nella pagina chiamante.
Se la password e'errata viene creato
un nome di pagina inesistente e il
salto provochera'un errore
"404 file not found" o similare.
Per ottenere il nome che si deve dare
alla pagina protetta basta inserire la
password desiderata e abilitare il
window.alert, la stringa che si ottiene
deve essere il nome della pagina.
<script language="JavaScript">
function Salta(passw)
{
TabCaratteri="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
01";
nuovaStringa="";
for (a=0; a<passw.length; a++)
   {
   carattere=passw.substring(a,a+1);
   posizione=TabCaratteri.indexOf(carattere)^15;
   nuovaStringa += TabCaratteri.substring(posizione, posizione+1);
   }
  // window.alert(nuovaStringa);
location=nuovaStringa+".htm";
}
</script>
<form name="form1">
  <input type=password name=password1 value="">
  <input type=button value="Entra" onClick="Salta(password1.value)">
</form>
-----MESSAGGIO 2--------------------------------------
Lo script funziona nel seguente modo:
- si estrae dalla password un carattere alla volta
- si cerca la sua posizione all'interno della stringa
TabCaratteri, che puo'variare da 0 a 63
- la si mette in xor con il valore numerico 15 (ma
va bene anche un qualsiasi altro numero compreso
tra 1 e 63, lo zero non va bene perche'un numero
xor zero rimane invariato)
- si usa questo numero come nuova posizione per
ottenere il nuovo carattere dalla stringa TabCaratteri
- si aggiunge il carattere alla stringa nuovaStringa
alla fine in nuovaStringa abbiamo la nostra password
con tutti i caratteri modificati, non resta che aggiungere
".htm" e cambiare pagina:  location=nuovaStringa+".htm";
per esempio, la password "ameba" produce la
stringa "5p145", e quindi la pagina da richiamare
deve chiamarsi 5p145.htm
Dimenticavo di dire che per funzionare correttamente
la password deve essere composta esclusivamente
dai caratteri di TabCaratteri, e cioe'solo numeri e
lettere.
Per quanto riguarda l'errore, di che errore si tratta?
Ho provato con il copia/incolla dal messaggio e ho
visto che lo 01"; e'andato a  capo, la stringa di
TabCaratteri deve essere scritta tutta su un unica
riga altrimenti si ha subito un errore
di "costante string senza terminazione", era
questo?
Per quanto riguarda password diverse mi sa che la
cosa piu'immediata e'quella di scrivere tanti file
xyz.htm quante sono le password da usare, es:
password1: ameba  (modificata diventa 5p145)
password2: triciclo  (modificata diventa ikt3t3qn)
scrivere due file htm chiamati:
5p145.htm
ikt3t3qn.htm
contenenti il seguente codice:
<html>
<head></head>
<body onLoad="location=...URL della pagina protetta...">
</body>
</html>
Rendere disponibile una nuova password comporta
solo l'aggiunta di un nuovo file di nome appropriato.
E se si vuole revocare una password?
Basta cancellarlo.
E se l'utente si ricorda l'URL della pagina e
bypassa la password?
Alla revoca si cambia anche il nome della pagina
e i relativi link dentro tutti i file di reindirizzamento.
Volendo e'possibile semplificare tutto il lavoro facendo
scrivere come password gia'il nome di uno di questi
files di reindirizzamento:
<script language="JavaScript">
function Salta(passw)
{
  location=passw+".htm";
}
</script>
<form name="form1">
  <input type=password name=password1 value="">
  <input type=button value="Entra" onClick="Salta(password1.value)">
</form>
In pratica in questo caso come password invece di
ameba o triciclo si deve scrivere direttamente  5p145
o ikt3t3qn.
------MESSAGGIO 3--------------------------------
Il doppio slash // serve per non far
eseguire una riga, prova a cambiare:
// window.alert(nuovaStringa);
location=nuovaStringa+".htm";
con:
window.alert(nuovaStringa);
// location=nuovaStringa+".htm";
Ora puoi scrivere una parola qualsiasi
e premendo il pulsante apparira'una
finestrella con il nome che devi dare
alla pagina corrispondente.
ciao
Claudio