Avatar billede -l_jogge_l- Nybegynder
26. januar 2004 - 11:02 Der er 15 kommentarer og
4 løsninger

En Password Generator

Er der nogen der ved hvordan man kan lave en smart lille Password Generator.

Eks jeg skriver "Karl Gustav" så skal passwordet være "XkJAl432"

Eller noget i den stil....
Avatar billede nute Nybegynder
26. januar 2004 - 11:15 #1
Public Function randomPassword(pwLength As Integer)
    Dim i As Integer
    Dim p As String
    p = ""
    For i = 1 To pwLength
        Randomize Timer
        If Int(2 * Rnd + 1) = 1 Then
            p = p + Chr(Int((57 - 48 + 1) * Rnd + 48))
        Else
            p = p + Chr(Int((90 - 65 + 1) * Rnd + 65))
        End If
    Next i
    randomPassword = p
End Function

/nute
Avatar billede repsak Nybegynder
26. januar 2004 - 11:20 #2
"Eks jeg skriver "Karl Gustav" så skal passwordet være "XkJAl432"

Vil det sige at Karl Gustav altid vil få det samme password? I så fald skal du nok nærmere lege med Hashcodes (f.eks.)
Avatar billede -l_jogge_l- Nybegynder
26. januar 2004 - 11:22 #3
Ja... hvis jeg så SLETTER ALT på hele min Computer, og laver et "NYT" password, og skriver Karl Gustav igen, så skal den IGEN skrive "XkJAl432".....
Avatar billede nute Nybegynder
26. januar 2004 - 11:26 #4
ahh ... I c ... den bliver nok mere komplex at lave ... sorry
Avatar billede -l_jogge_l- Nybegynder
26. januar 2004 - 11:39 #5
He he he.... det er defor jeg spørg...
Avatar billede martin_moth Mester
26. januar 2004 - 12:04 #6
Det behøver da slet ikke at være kompliceret - afhængigt af hvor sikkert det skal være.

Passwordet kan fx være:

[Længden af navnet] + [Ansi-koden af sidste karakter i navnet] + [tværsummen af ansikoden af første karakter i navnet] + [længden af navnet skrevet i hexidecimalt tal]

Eller hvad nu fantisien byder :o)
Avatar billede martin_moth Mester
26. januar 2004 - 12:08 #7
Meget simpelt, kan passwordet være navnet skrevet bagfra.

Min poiente: Gør det så kompliceret som du vil og mener der er behov for - hvis du bruger fx tværsummen af et eller andet tal der bliver frembragt på baggrund af navnet (fx. længden af navnet), er det et eksempel på en ikke-reversibel matematisk funktion, og derfor er den svær at gætte. Altså tværsummen af 223 = 7, men du kan ikke logisk slutte, at har du tværsummen 7, nå tallet være 223, vel?

Ideen må være, at hvis du ser 10 navne og 10 tilhørende passwords, skal man ikke lige kunne gennemskue systemet.
Avatar billede martin_moth Mester
26. januar 2004 - 12:14 #8
Nu vil jeg ikke lave et konkret eksempel, for så kan alle jo se hvordan du laver dine passwords :o)

Men du har vel fanget ideen, ellers kan jeg lave et meget simpelt eksempel:

Navn = "Karl Gustav"
PW = Asc(left(Navn,1)) & len(navn) & hex(len(navn))

Ovenstående PW bruger kun længden af navnet og første bogstav - derfor vil

Karl Gustav og Karsten Bob få samme password. Så gør det lidt mere kompliceret :o)
Avatar billede martin_moth Mester
27. januar 2004 - 10:58 #9
Ovenstående 3 indlæg er svar :o)

Har du fået noget til at virke?
Avatar billede -l_jogge_l- Nybegynder
27. januar 2004 - 11:19 #10
Hmm.... forstår ikke helt hvad den sidste gør???
Avatar billede martin_moth Mester
27. januar 2004 - 13:08 #11
Den sidste?
Avatar billede jpvj Nybegynder
27. januar 2004 - 13:09 #12
Brug hash digest. Så har du en standardiseret og sikker måde. Brug MD5 eller SHA1.
Avatar billede jpvj Nybegynder
27. januar 2004 - 13:12 #13
Du vil ex. kunne finde en MD5 implementering her:

http://www.codelib.net.au/Code.asp?CodeID=8

Funktionen hedder tilsyneladende MD5() og input er et klartekst password.
Avatar billede martin_moth Mester
27. januar 2004 - 13:58 #14
jpvj: Alle kan jo kopiere den kode, og køre den selv. Altså kan man med kendskab til et brugernavn altid finde det tilhørende password - eller har jeg misforstået?

Hvis -|jogge|- ALTID skal kunne genskabe passwords ud fra brugernavne, kan han bruge den kode du har linket til - men det kan alle andre jo også bare gøre, ergo kan alle logge ind hvis de bare gider fremstille et password ved at copy-paste koden i dit link
Avatar billede -l_jogge_l- Nybegynder
27. januar 2004 - 14:36 #15
jpvj: Ideen er måske god nok, men Martin har lidt ret....
Avatar billede martin_moth Mester
27. januar 2004 - 17:17 #16
Har du mere at spørge om - fik du svar på dit spørgsmål om "den sidste"
Avatar billede sjh Nybegynder
28. januar 2004 - 14:34 #17
Problemet er ikke så stort med MD5() og det er nok også en af de beder måder at gøre det på.

'---------------------------- Form1 ---------------------------------
' Hvis du bruger MD5() http://www.codelib.net.au/Code.asp?CodeID=8
' Så skulle det lige være til at sette ind.
'
' HUSK at ændre strSoftkey brug eventuel samme måde som jeg har brugt
' her : http://www.eksperten.dk/spm/448082 (07/01-2004 08:44:11) til
' at skjule Softkey
'
' TextBox -> txtUser.Text
' TextBox -> txtPass.Text
'--------------------------------------------------------------------
Option Explicit
' ---------------------------------------------------
' Skriv et brugernavn og tryk på cmdGenerator_Click
' Så for du den adgangskode som passer til brugernavn
Private Sub cmdGenerator_Click() ' <- CommandButton
Dim strSoftkey As String
  ' Softkey er bare en tekst så da ikke er andre da kan luer din kode af
  ' (strSoftkey = "Password")
  strSoftkey = Chr$(80) & Chr$(97) & Chr$(115) & Chr$(115) & _
              Chr$(119) & Chr$(111) & Chr$(114) & Chr$(100)

  txtPass.Text = MD5(strSoftkey & txtUser.Text)
End Sub

Private Sub cmdLogin_Click() ' <- CommandButton
Dim strSoftkey As String
  ' Softkey er bare en tekst så da ikke er andre da kan luer din kode af
  ' (strSoftkey = "Password")
  strSoftkey = Chr$(80) & Chr$(97) & Chr$(115) & Chr$(115) & _
              Chr$(119) & Chr$(111) & Chr$(114) & Chr$(100)

  If MD5(strSoftkey & txtUser.Text) = txtPass.Text Then
    ' Logget ind..
      Else
    ' Brugernavn eller adgangskode er forkert
  End If
End Sub
'---------------------------- Form1 ----------------------------
Avatar billede -l_jogge_l- Nybegynder
03. februar 2004 - 09:36 #18
Jeg takker for svarerne!
Avatar billede jps2mt Nybegynder
01. april 2004 - 16:07 #19
Den i referer til her: http://www.codelib.net.au/Code.asp?CodeID=8 kan jeg ikke få til at virke...

Den skriver bare Invalid outside procedure ved    m_lOnBits(0) = CLng(1)

Er det ikke rigtigt nok at det skulle kunne smides ind i et modul, eller har jeg misforstået det??
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester