Option Explicit
Private Const letters = "abcdefghijklmnopqrstuvwxyz0123456789"
Private Sub Command1_Click()
MsgBox (GeneratePassword("Per Hultqvist", 6))
End Sub
Private Function GeneratePassword(ByVal UserName As String, ByVal Length As String)
Dim sPassword As String
Dim lSeed As Long
Dim i As Integer
' Denna loop räknar ut en användares unika slumptalsfrö
' En enkel hashalgoritm. Kan ersättas med en bättre variant
For i = 1 To Len(UserName)
lSeed = (lSeed + Asc(Mid(UserName, i, 1)) * i) Mod 32767
Next i
' Nollställ slumptalsfröt
Rnd -1
' Sätt slumptalsfröt till användarens unika frö
Randomize lSeed
' Generera lösenord med rätt längd
For i = 1 To Length
sPassword = sPassword + Mid(letters, Int(Rnd * Len(letters)) + 1, 1)
Next i
GeneratePassword = sPassword
End Function