webForumDet fria alternativet

slumpa fram olika lösenord

ASP

17 svar · 579 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Frågan#1

Jag har en tabell som innehåller ca 400 poster. I tabellen finns det en kolumn som heter pwd. I den står alla lösenord till de olika användarna.

Nu tänkte jag att fråga hur man gör ett script där man slumpar fram olika lösenord till alla användare och sätter in dem i den kolumnen.

Då måste man väl loopa och och sätta in men hur slumpar man fram ett lösenord som tex ska innehålla siffror och bokstäver?

Medlem sedan mars 2002777 inlägg
#2

Den som söker finner ;)

http://www.webforum.nu/showthread.php?s=&threadid=37412

Medlem sedan feb. 20011 498 inlägg
#3

Tack så mycket :)

Medlem sedan aug. 2001226 inlägg
#4
<%

function mkPwd(IntAnt)
'##### Copyright Per Engström 2002*     #####
'##### [email]pereng@bigfoot.com[/email]               #####
'##### [url]http://pereng.cjb.net[/url]            #####
'##### Use this script while the        #####
'##### copyright text still remain!     #####
'##### Njoy!                            #####
strCode= "ÅÄÖ012345678klmnopqÄÖ012345rstuvwxABCDEFGHIJKLMNOPQRSTUVWXYZyzåabcdefghijklm9abcdefghijnopqrstuvwxyzåäöäöABCDEFGHIJKLMNOPQRSTUVWXYZÅ6789"
for a = 1 to IntAnt
randomize
intTest = rnd * len(strCode)
	strPwd= strPwd & mid(strCode,(intTest + 1),1)
next
mkPwd = strPwd
end function
%>
använd genom
<%=mkPwd(3) ' dvs 3 är längden på lösenordet%>
Medlem sedan feb. 20011 498 inlägg
#5

har nu kommit så här långt:

<%

Function MakePwd(ByRef intPwdLength)
Dim strLetter
Dim arrLetter
Dim t_Pwd
Dim i
Dim intLetter

Randomize

' Character to build password with.
' OBS!!! Use only valid charachters.
'-----------------------------------
strLetter ="A,B,C,D,E,F,G,H,I,J,K,L,M,n,o,p,q,r,s,t,u,v,w,x,y,z," & _
			"0,1,2,3,4,5,6,7,8,9,N,O,P,Q,R,S,T,U,V,W,X,Y,Z," & _
			"a,b,c,d,e,f,g,h,i,j,k,l,m,"

' Create an array with all valid chars
'--------------------------------------
arrLetter = Split(strLetter,",")

	' Builds a password with chosed length
	'-------------------------------------
	For i = 1 To intPwdLength
		intLetter = CInt(RND * UBound(arrLetter))
		t_Pwd = t_Pwd & arrLetter(intLetter)
	Next

	MakePwd = t_Pwd
End Function

Set Connect = Server.CreateObject("ADODB.Connection") 

Connect.Open "Driver={Mysql};Server=***;Database=***;UID=***;PWD=***;option=16384"

SQL = "select * from tabell"
Set RecSet = Connect.Execute(SQL)

Do Until RecSet.EOF

strPassword = MakePwd(8)
	

SQL2 = "UPDATE kolumn SET pwd = '"&strPassword&"'"
Connect.Execute(SQL2)

RecSet.Movenext
Loop

Set RecSet = Nothing

Connect.Close
Set Connect = Nothing

Men då sätter den samma lösenord i alla poster. Men eftersom det inte går att ha en funktion i en loop, hur ska man göra då?

Medlem sedan juni 200032 967 inlägg
#6

Det du har skrivit fungerar, förutom en liten sak. Du har ingen WHERE med i din UPDATE-fråga, så du uppdaterar ju alla poster på en gång.

Mvh,

Medlem sedan feb. 20011 498 inlägg
#7

Just det, tänkte inte på det.

Medlem sedan maj 2002560 inlägg
#8

[r] felpostat...

Medlem sedan feb. 20032 027 inlägg
#9

pirro skrev:

<%


function mkPwd(IntAnt)
'##### Copyright Per Engström 2002*     #####
'##### [email]pereng@bigfoot.com[/email]               #####
'##### [url]http://pereng.cjb.net[/url]            #####
'##### Use this script while the        #####
'##### copyright text still remain!     #####
'##### Njoy!                            #####
strCode= "ÅÄÖ012345678klmnopqÄÖ012345rstuvwxABCDEFGHIJKLMNOPQRSTUVWXYZyzåabcdefghijklm9abcdefghijnopqrstuvwxyzåäöäöABCDEFGHIJKLMNOPQRSTUVWXYZÅ6789"
for a = 1 to IntAnt
randomize
intTest = rnd * len(strCode)
	strPwd= strPwd & mid(strCode,(intTest + 1),1)
next
mkPwd = strPwd
end function
%>
använd genom
<%=mkPwd(3) ' dvs 3 är längden på lösenordet%>

Hur lägger man in den koden i en variabel?

Medlem sedan juni 200032 967 inlägg
#10
strPass = mkPwd(3)
Medlem sedan feb. 20032 027 inlägg
#11

@nders skrev:

strPass = mkPwd(3)

Jag får
Microsoft JET Database Engine error '80040e14'

Syntax error in UPDATE statement.

/sendPass.asp, line 20

med
strPass = mkPwd(10)

SET objConn = Connect()
objConn.Execute("Update tblUsers SET password=strPass where email='"&email&"'")

Rad 20 är objConn.Execute

Medlem sedan juni 200032 967 inlägg
#12
  1. Du måste ju konkatenera in variabeln strPass i SQL-frågan, men det vet du ju hur du gör?
  2. Password är ett lite speciellt ord i jet / odbc. Byt gärna namn på fältet.
Medlem sedan feb. 20032 027 inlägg
#13

Är inte riktigt säker på hur man gör när man konkatenerar in variabeln

@nders skrev:

  1. Du måste ju konkatenera in variabeln strPass i SQL-frågan, men det vet du ju hur du gör?
  2. Password är ett lite speciellt ord i jet / odbc. Byt gärna namn på fältet.
Medlem sedan juni 200032 967 inlägg
#14

Är inte riktigt säker på hur man gör när man konkatenerar in variabeln

Du har ju gjort det med variabeln email i samma SQL-fråga? Jag kan dessutom tänka mig att du gjort det massor av andra gånger också. =)

Medlem sedan feb. 20032 027 inlägg
#15

@nders skrev:

Är inte riktigt säker på hur man gör när man konkatenerar in variabeln

Du har ju gjort det med variabeln email i samma SQL-fråga? Jag kan dessutom tänka mig att du gjort det massor av andra gånger också. =)

ok du menar '"&strPass&"'

Medlem sedan juni 200032 967 inlägg
#16

Yes

Medlem sedan feb. 20032 027 inlägg
#17

WebbisNet skrev:

@nders skrev:

Är inte riktigt säker på hur man gör när man konkatenerar in variabeln

Du har ju gjort det med variabeln email i samma SQL-fråga? Jag kan dessutom tänka mig att du gjort det massor av andra gånger också. =)

ok du menar '"&strPass&"'

Får inget felmeddelande med min kod nu, men inget mail kommer fram....hmmmmmmm

Medlem sedan apr. 2003101 inlägg
#18

Råkade posta i fel tråd...sorry..:)

265 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)