In questa pagina descrivo come creare automaticamente (in modo casuale - random) una password on line (al momento funziona solo per Internet Explorer).
| Lunghezza Password | |
| Maiuscole | |
| Miuscole | |
| Numeri | |
| Simboli |
La password non viene creata lato server ma direttamente sulla vostra macchina
(se volete potete provare anche ad usare la pagina lavorando off-line) quindi non c'è
alcun pericolo che qualcuno la possa carpire (a meno che non abbiate qualcuno alle vostre spalle).
Basta inserire la lunghezza della password ed il numero massimo di occorrenze di maiuscole, minuscole, numeri e simboli di interpunzione. La somma di questi quattro parametri può anche essere maggiore della lunghezza totale (ovvero il numero massimo di occorrenze per un tipo di carattere non verrà raggiunto), ma non minore altrimenti viene generato un messaggio di errore. Le impostazioni che preferisco rispettano il 4-4-2, ovvero quattro maiuscole, quattro minuscole e due numeri.
Questo password generator, o key generator, crea una id key per le login in modo sicuro. Ricordatevi che una password abbstanza lunga è difficilmente soggetta a crack, quindi una key generation molto variegata, con maiuscole (upper case), minuscole (lower case), numeri e simboli di interpunzione è difficile da scoprire (exlpoit).
Il programma era scritto inizialmente in Visual Basic, poi è stato tradotto in vbscript in modo da tenerlo su un pagina web, quindi funziona solo con Internet Explorer.
Il codice può essere tranquillamente inserito in una form visual basic con piccolissime variazioni
Quando e se avrò il tempo di tradurlo in javascript non lo so (probabilmente mai),
per il momento può andare anche così, tanto lo uso solo io ...
Sub calcola()
new_pass2.innerText = ""
Randomize
Dim i
Dim vmaiusc, vminusc, vinterp, vnumeri
vmaiusc = 0
vminusc = 0
vinterp = 0
vnumeri = 0
Dim temp
If cintp(Interp.value) + cintp(Maiusc.value) + cintp(Minusc.value) + cintp(Num.value) < cintp(lunghezza.value) Then
MsgBox ("Controllare i valori massimi per i tipi di caratteri")
Exit Sub
End If
For i = 1 To cintp(lunghezza.value)
Randomize
temp = Int((4 * Rnd) + 1)
Select Case temp
Case 1
If vmaiusc < cintp(Maiusc.value) Then
new_pass2.innerText = new_pass2.innerText & Maiuscola()
vmaiusc = vmaiusc + 1
Else
i = i - 1
End If
Case 2
If vminusc < cintp(Minusc.value) Then
new_pass2.innerText = new_pass2.innerText & Minuscola()
vminusc = vminusc + 1
Else
i = i - 1
End If
Case 3
If vinterp < cintp(Interp.value) Then
new_pass2.innerText = new_pass2.innerText & InterPunzione()
vinterp = vinterp + 1
Else
i = i - 1
End If
Case 4
If vnumeri < cintp(Num.value) Then
new_pass2.innerText = new_pass2.innerText & Numero()
vnumeri = vnumeri + 1
Else
i = i - 1
End If
End Select
Next
new_pass2.innerText = new_pass2.innerText
End Sub
Function Minuscola()
Randomize
Minuscola = Chr(Int((26 * Rnd) + 1) + 96)
End Function
Function InterPunzione()
Randomize
Dim a(31)
Dim i
For i = 1 To 15
a(i) = Chr(32 + i)
Next
For i = 16 To 22
a(i) = Chr(42 + i)
Next
For i = 23 To 28
a(i) = Chr(68 + i)
Next
a(29) = "{"
a(30) = "|"
a(31) = "}"
InterPunzione = a(Int((31 * Rnd) + 1))
End Function
Function Maiuscola()
Randomize
Maiuscola = Chr(Int((26 * Rnd) + 1) + 64)
End Function
Function Numero()
Randomize
Numero = Chr(Int((10 * Rnd) + 1) + 47)
End Function
Function cintp(var)
On Error Resume Next
cintp = 0
cintp = CInt(var)
End Function
Torna alla home page