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é.

  1. Potřeboval bych sehnat script kterej by dovoloval přihlašenému uživately změnit heslo. díky
  2. 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.
  3. Na hashovani lze doporucit crypt()
  4. Díky za odpověď ale jsem úplnej amatér v php i v databázi. Nemohl bys mi to prosím napsat podroběji.
  5. <HTML>Nesnasim slovickareni a tak se nebudu zminovat ze crypt nic nehashuje ale cryptuje soli ;)</HTML>
  6. 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
  7. <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>
  8. >> hash neni sifrovani ale otisk retezce Jakej je rozdil mezi otiskem a jednosmernou sifrou? Ja to fakticky nevim...
  9. <HTML>presne takovy jako mezi crypt() a md5()</HTML>
  10. 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)
  11. 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)
  12. <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>
  13. >> u cryptu to je nemozne pokud zakryptovanej retezec pouziju jako salt, bude jen jediny vysledek...
  14. všetko sa dá, preto sa tomu hovorí BFA if !(nedá, nemožné, nejde, nikdy) {Človek}

← Zpět na všechna témata