Avatar billede slapstick Nybegynder
25. februar 2005 - 12:09 Der er 5 kommentarer og
1 løsning

generere random password

jeg har en side der kan oprette brugere i et brugersystem
jeg vil godt ha at de brugere får et random genereret password på 8 karakterer hvor de to af dem er tal og resten er blandet upper og lower case bogstaver
nogen der har en løsning på det?
Avatar billede mortency Nybegynder
25. februar 2005 - 12:19 #1
<%
ordvar = "gnu, hest, blåbær, stol"
ordvar = split(ordvar, ",")
randomize
password = ordvar(Int((UBOUND(ordvar)* Rnd))) & Int((10 * Rnd)) & ordvar(Int((UBOUND(ordvar)* Rnd))) & Int((10 * Rnd))
%>

function lavPassword(antal)
  tilladtkarakter = "abcdefghijklmnopqrstuvwxyz1234567890"
  str = ""
  for i = 1 to antal
    randomize
    index = Int(rnd * len(tilladtkarakter))+1
    str = str & Mid(tilladtkarakter,index,1)
  next
  lavPassword = str
end function


Response.Write "Test : " & lavPassword(9) & "<br>"

http://activedeveloper.dk/download/default.asp?mode=showdownload&id=163
Avatar billede mortency Nybegynder
25. februar 2005 - 12:25 #2
Avatar billede erikjacobsen Ekspert
25. februar 2005 - 13:08 #3
Hvis du har krav til forekomst af bestemte grupper af tegn, så skal der lidt mere til.
Bær over med kodningen i dette eksempel, det er en skitse til noget jeg skulle bruge en gang:

  function password()
    dim tegn(3)
    tegn(0)="abcdefghijkmnpqrstuvwxyz"
    tegn(1)="ABCDEFGHJKMNPQRSTUVWXYZ"
    tegn(2)="0123456789"

    dim antal(3)
    antal(0)=3
    antal(1)=3
    antal(2)=2

    dim groups    ' 0 hvis ingen grupper
    groups=3     

    dim pass
    pass=""
    for i=0 to ubound(tegn)
      for j=1 to antal(i)
        k= Int(rnd*len(tegn(i)))+1
        pass = pass & mid(tegn(i),k,1)
      next
    next

    pass2=""
    while len(pass)>0
      k=Int(rnd*len(pass))+1
      pass2=pass2 & mid(pass,k,1)
      pass= mid(pass,1,k-1) & mid(pass,k+1,len(pass))
    wend

    if groups<>0 then
      pass=pass2
      pass2=mid(pass,1,groups)
      pass=mid(pass,groups+1,len(pass))
      while len(pass)>0
        pass2=pass2 & "-" & mid(pass,1,groups)
        pass=mid(pass,groups+1,len(pass))
      wend
    end if

    password=pass2
 
  end function

  randomize
  response.write password() & "<br>"
  response.write password() & "<br>"
  response.write password() & "<br>"


Den udskriver fx: 

G1C-4tm-Fi
gHQ-teU-03
B5U-Aah-h3

hvor jeg har sat den til at sætte en "-" for hvert tredie tegn - øger læseligheden.
Avatar billede slapstick Nybegynder
25. februar 2005 - 16:12 #4
erik skriv et svar så får du point :)
og tal til mortency for svaret os !
Avatar billede erikjacobsen Ekspert
25. februar 2005 - 19:42 #5
Jeg samler slet ikke på point, så du får ingen svar fra mig.

Men det sjove er jo, at hvis man har sat disse begrænsninger på et password,
3 små, 3 store og 2 cifre, så er meget nemmmere at gætte et password (hvis man kender
reglen), end hvis man bare tog 8 tilfældige af tegnene. Ok, stadig svært, men
nemmere end ellers.

Mit bud er derfor at du bruger den klassiske metoder, som de 2 første henviser til.
Avatar billede slapstick Nybegynder
25. februar 2005 - 19:48 #6
hehe ok jamen tak tak så modder jeg mortency's svar istedet for :)
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