Potřeboval jsem pro jeden projekt, který píšu v klasickém ASP (tedy nikoliv ASP.NET) mít možnost generovat náhodné heslo. Proto jsem si pro tento účel napsal následující funkci.
Je to velice jednoduchá funkce a píšu to sem jen proto, abych na to nezapomněl a pro to, že by se to třeba mohlo někomu hodit.
Zde je kód zmíněné funkce:
'*******************************************************************************
'Funkce pro vygenerování náhodného hesla zadané délky
'*******************************************************************************
Function RandomPassword(lLenght)
'mnozina znaku, ze kterych budu skladat heslo
'zamerne je vynechano velke pismeno O, nula a pismena Z a Y (mala i velka)
Const sPosChars = "abcdefghijklmnopqrstuvwxABCDEFGHIJKLMNPQRSTUVWX123456789"
'definice promennych
Dim lRnd 'nahodne cislo
Dim lPrev 'predchozi nahodne cislo
Dim sRand 'pomocny retezec
'inicializace nahodnych cisel
Randomize
'default funkce
RandomPassword = ""
'osetreni delky hesla (default je 6)
If (lLenght <= 0) Then lLenght = 6
'pomocna promenna
sRand = ""
lPrev = 0
Do
'vygeneruju nahodne cislo od 1 do delka moznych znaku
Do
'a delam to tak dlouho, dokud se nahodne cislo nelisi od predchoziho nahodneho cisla
'pro pripad, ze by bylo vygenerovano stejne jako predchozi
lRnd = CLng((Rnd * Len(sPosChars)) + 1)
Loop Until (lRnd <> lPrev)
'ulozim aktualni nahodne cislo do jine promenne
lPrev = lRnd
'priradim retezec z pole povolenych znaku do pomocneho retezce
sRand = sRand & Mid(sPosChars, lRnd, 1)
Loop Until (Len(sRand) = lLenght)
'priradim hodnotu funkce
RandomPassword = sRand
End Function
3 komentáře:
To uz jsem nekde videl ... tusim Ivorius weblog :-) akorat to bylo pro PHP.
Hezká funkce, to si musím zapamatovat.
Nepopírám, že jsem se inspiroval někde jinde. Abych řekl pravdu, už si nepamatuju, kde to bylo. Já jsem funkci v podstatě pouze přepsal do ASP a upravil jsem řetězec s povolenými znaky. Napsáním článku mi nešlo o to, abych byl chválen za to, jak jsem dobrej, ale spíš jen o to, abych si někde poznamenal takovou docela užitečnou funkci.
Okomentovat