webForumDet fria alternativet
Logga in / Bli medlem

Kryptera lösenord

Databaser & SQL

3 svar · 278 visningar · startad av Fireh

Medlem sedan jan. 2003173 inlägg
Trådstart#1

Nu är jag här igen... :OO

Har just upptäckt ett problem. Jag har kört med PASSWORD() när jag har sparat lösenorden i databasen. När man sedan har loggat in så har jag jämfört på så sätt att jag krypterar in det inskrina lösenordet först och sedan jämför det med det befintliga. Upptäckte just att den inte hinner med...

ID = rs("ID")
Uppdate= "UPDATE Users SET Pass2=Password('"&Pass&"') WHERE ID=" & ID
db.Execute Uppdate
Pass1 = rs("Pass")
Pass2 = rs("Pass2")
  If Pass1 = Pass2 Then
osv

Problemet är att när den läser ur Pass2, så läser den ur det som skrevs in vid föregående inloggning. Det resulterar i att man loggas in oavsett vilket lösenord man skriver. Gången därefter blir det däremot fel även om man skriver rätt. Hoppas ni fattar...

Finns det något sätt att i ASP kryptera lösenordet man skrivit i Pass-rutan i formuläret utan att skicka det till MySQL som tydligen inte hinner med att skriva in innan den läser ur?

Medlem sedan mars 20002 836 inlägg
#2

du hämtar recordsetet med värdena för pass och pass2 INNAN du kör uppdateringen.

testa detta:

ID = rs("ID")
Uppdate= "UPDATE Users SET Pass2=Password('"&Pass&"') WHERE ID=" & ID
	db.Execute Uppdate
	Pass1 = rs("Pass")
	Pass2 = pass	'## -- variabeln du använder för att uppdatera det nya lösenordet --
 
	If Pass1 = Pass2 Then
osv

cya,
/PatrikB

Medlem sedan jan. 2003173 inlägg
#3

Hejsan! Jag tackar för förklaringen till varför det blir så.
Jag gjorde som så att jag satte ett nytt recordset efter att jag gjort uppdateringen.
Då fungerar det som det ska.

Jag förstår däremot inte din kod. Pass är nämligen det okrypterade lösenordet man skriver i lösenordsrutan medan Pass1 är det krypterade lösenordet i databasen. Så det är som att jämföra a123a465a132a5 med nisse.

Men, men... det fungerar nu i alla fall.
Stort tack för hjälpen!

Medlem sedan juni 20008 205 inlägg
#4

Fotnot: Enligt manualen ska man inte använda password-funktionen, utan md5 eller någon sha-version.

383 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
127 ms — deklarationer (db)
123 ms — hämta statistik (db)
126 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)