Přihlášení se změnou hesla
14 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Potřeboval bych sehnat script kterej by dovoloval přihlašenému uživately změnit heslo. díky
-
Dejme tomu, že ten uživatel bude mít svůj login a heslo uložený v DB. Takže si na stránku dáš formulář: <input type="text" name="login"> <input type="password" name="pass"> ... , kde si nejdřív (i když bude přihlášenej) ověříš, jestli tyto dva údaje skutečně v databázi existujou, a potom dáš: <input type="password" name="new_pass1"> <input type="password" name="new_pass2"> (jedno na nové heslo a druhý na ověření správnosti prvního nového hesla) a celý tohle odešleš skriptu, kterej nejdřív zkontroluje tu první podmínku: <? if(mysql_num_rows(mysql_query("select id from tabulka where login like '$login' and pass like '$pass'")) != 0): //tabulka bude mít minimálně sloupce id, login a pass //a pak zjistíš, jestli obě nová hesla jsou shodná if($_POST["new_pass1"] == $_POST["new_pass2"]): mysql_query("update tabulka set pass = '".$_POST["$new_pass1"]."' where login like '$login' and pass like '$pass'"); endif; endif; ?> ... nevím, jestli jsem tam někde neudělal chybu. Samozřejmě, že vše můžeš hashovat md5() a vypisovat i chybové hlášky.
-
Na hashovani lze doporucit crypt()
-
Díky za odpověď ale jsem úplnej amatér v php i v databázi. Nemohl bys mi to prosím napsat podroběji.
-
<HTML>Nesnasim slovickareni a tak se nebudu zminovat ze crypt nic nehashuje ale cryptuje soli ;)</HTML>
-
Richard: hash = jednosmerne sifrovani. Dela crypt() snad neco jinyho? AFAIK crypt() muze pouzivat i md5, je-li na OS k dispozici. A ze md5 hashuje, o tom snad uz nepochybujes... Tolik slovickareni
-
<HTML>>hash = jednosmerne sifrovani. hash neni sifrovani ale otisk retezce, to je zakladni rozdil, to ze crypt umi md5 na osoleni nic neznamena nemuzes srovnavat md5 a crypt, pri spravnem zakladnim uziti obou funkci zjistis zasadni rozdil mezi cryptovanim a hashovanim... u crypt() vezmes heslo, pouzijes na nej crypt a ulozis ho.. vznikne napr: $1$9e..cR..$2VGfqVcnyQnwX6YzlklIS. (puvodem toho je "ahoj") pak kdyz heslo overujes pouzijes puvodni retezec ("ahoj") a ulozene cryptovane heslo pouzijes jako salt, pri shode je vysledkem opet ulozeny salt.... viz priklad z manualu: $password = crypt("My1sTpassword"); // let salt be generated if (crypt($user_input, $password) == $password) { echo "Password verified!"; } .. v pripade ze ti nekdo ziska ulozeny zacryptovany retezec je mu k nicemu jelikoz pri pouziti standardni soli (dle nastaveni serveru) je vysledek pokazde jiny a NELZE z nej tedy ziskat puvodni retezec zatimco po hashovani ti vysledny hash zjisti kdokoliv pres bruteforce mod. navic obsahuje jen znaky A-Z a-z 0-9</HTML>
-
>> hash neni sifrovani ale otisk retezce Jakej je rozdil mezi otiskem a jednosmernou sifrou? Ja to fakticky nevim...
-
<HTML>presne takovy jako mezi crypt() a md5()</HTML>
-
odltačok sa nedá previesť späť na pôvodné heslo (aspoň sa o to pokúšal navrhovateľ algoritmu) šifrovanie je predurčené (a pokiaľ nieje MS, tak aj funguje) na zašifrovanie vstupných dát a spätné rozkódovanie (kľúč nemusí byť na obe operácie ten istý, čo je aj výhoda PGP)
-
odltačok sa nedá previesť späť na pôvodné heslo (aspoň sa o to pokúšal navrhovateľ algoritmu) šifrovanie je predurčené (a pokiaľ nieje MS, tak aj funguje) na zašifrovanie vstupných dát a spätné rozkódovanie (kľúč nemusí byť na obe operácie ten istý, čo je aj výhoda PGP)
-
<HTML>neda, stejne jako zacryptovany retezec, jenomze md5 se da porovnavam generovanim retezce metodou bruteforce ... u cryptu to je nemozne (pri pojeti co pouziti to jiny vysledek)</HTML>
-
>> u cryptu to je nemozne pokud zakryptovanej retezec pouziju jako salt, bude jen jediny vysledek...
-
všetko sa dá, preto sa tomu hovorí BFA if !(nedá, nemožné, nejde, nikdy) {Človek}