Üdv!
A Postfix és Courier szervereimet beállítottam, hogy mysql táblákból dolgozzon. Ez működik is remekül, de szeretnék egy pár soros PHP scriptet írni, ahol a userek kedvükre cserélhetnek jelszót a mailboxaikhoz. A jelszavak az SQL táblában a mysql encrypt() függvényével vannak titkosítva.
Ahol elakadtam: Az encrypt() sosem adja vissza kétszer ugyan azt a stringet. Gondolom ez azért van mivel random saltot használ. De a POP/IMAP szerver mégis honnan tudja eldönteni, hogy ami jelszót ő kap az egyezik-e ezzel a letárolt jelszóval, ha mindig mást kap az encrypt() hívásra?
Tehát kellene egy megoldás, amivel el tudom dönteni, hogy egy adott string egyezik-e az SQL táblában encrypt-eltel.
Köszi, karika200
- 1617 megtekintés
Hozzászólások
elolvasod az encrypt működését, és megérted, hogy jelszó létrehozásánál generál egy salt-t, majd a továbbiakban a már generált salt-t használja.
Azaz, uazzal a salt-al uazt a jelszót fogja visszaadna az encrypt().
- A hozzászóláshoz be kell jelentkezni
http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html#functi…
"If no salt argument is given, a random value is used."
Használata:
http://php.net/manual/en/function.crypt.php
Goto Example #1.
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.
- A hozzászóláshoz be kell jelentkezni
Köszönöm, így világos. AZ első két karakter maga a salt.
- A hozzászóláshoz be kell jelentkezni
De mindegy is, maga a crypt fuggveny by definition olyan, hogy ha a tarolt jelszot elcryptalod a bejott plaintext jelszoval, akkor a tarolt hash-t kell visszakapd - asszem.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni