Försöker hämta ett krypterat lösenord ifrån db, kör md5($pass) på den, men den blir ännu mer krypterad eller nåt, får annat konstigt värde, å inte det läsbara värdet jag hade hoppats på, va kan det bero på?
Läste att dom bytt från mysql 4 till 5an nu, kan ha med saken att göra?
MD5 krypterar inte, den räknar bara ut en kontrollsiffra, så du kan inte från kontrollsiffran gå tillbaka till det som du beräknade kontrollsiffran på.
Det man kan göra är att jämföra kontrollsiffran med färdiguträknade kontrollsiffror för exempelvis alla ord i ordlistan.
Försöker hämta ett krypterat lösenord ifrån db, kör md5($pass) på den, men den blir ännu mer krypterad eller nåt, får annat konstigt värde, å inte det läsbara värdet jag hade hoppats på, va kan det bero på?
Du tänker fel. Om du lagrar krypterade lösenord i databasen är de redan krypterade. md5 kan inte "avkrypteras" utan det du får göra istället är att kryptera det du jämför med.
Alltså, vid inloggning om det lösenord någon skrivit in ligger i $_POST['pass'], så ska du jämföra:
md5($_POST['pass']) == <det som står i db:n>
Om det gäller ett förlorat password kan det bara lösas genom att du automatgenererar ett nytt password som du dels lagrar krypterat i databasen, dels skickar ut i klartext till din användare.
tydal skrev:
Det man kan göra är att jämföra kontrollsiffran med färdiguträknade kontrollsiffror för exempelvis alla ord i ordlistan.
Det är ju (som väl är) av begränsat värde om användarna inte är dumma nog att använda ett riktigt ord rakt av...