Ako správne zapísať heslo do mysql DB
Dobry den,
mam problem so zapisovanim hesiel do mysql DB. Konkretne taky, ze ked do DB vlozim heslo pomocou funkcie password('heslo'), vlozim mi to do DB zakodovane (na polozku heslo mam nastaveny CHAR(15)), teda tych klasickych zakodovanych 15 znakov, ale na zaciatok tohto retazca mi to vlozi este hviezdicku (*). Neviem preco to robi a zakodovane heslo uz z DB nevycitam (teda ho neviem overit, ked zadam to iste heslo a tiez ho kodujem funkciou PASSWORD('') a tak porovnavam).
Skusal som take banality ako nahradit prve pismeno z hesla pri citani tou blbou hviezdickou, ale samozrejme nic.
Ak vie niekto ako na riesenie, napiste prosim, bol by som rad.
nakoniec nejake tie udaje:
MySQL v4.1.16
PHP v5.1.1
phpMyAdmin v2.8.1
Keď porovnávaš heslo z databázy s heslom zakódovaným funkciou PASSWORD, tak ho orežeš na tých 15 znakov, aby mali rovnakú dĺžku? Tie heslá, ktoré máš v databáze, boli zapísané tou istou verziou MySQL? Používať funkciu PASSWORD sa neodporúča, pretože sa môže meniť. Namiesto nej môžeš použiť MD5, SHA1 alebo inú hešovaciu funkciu.
1. Ani jedno heslo, ktore zapisujem do DB nie je dlhe 15 znakov (15 znakov ma byt maximalna dlzka hesla)
2. Ano, hesla boli zapisane v tom istom phpMyadmine, v ktorom som ich chcel skontrolovat.
3. Ucim sa z knihy, kde sa o inej kodovacej funkcii nepise, teda nepoznam pouzitie ani MD5 ani SHA1.
Este jedna poznamka, v starsej verzii mysql 4.xx fungovala tato funkcia v poriadku, teda zapis funkciou PASSWORD prebehol spravne.
Od dĺžky hesla nezávisí dĺžka hešu, ktorý zapisuješ do databázy, pretože dĺžka hešu je rovnaká. V staršej verzii to bolo 16 znakov, teraz je to viac a preto sa to pri vkladaní oreže. Pri porovnávaní potom porovnávaš reťazce rôznej dĺžky.
Treba zväčšiť dĺžku toho poľa a použiť takú funkciu na hešovanie, pri ktorej vieš, koľko miesta na to potrebuješ (md5, sha1 - viď manuál).
Funkcia PASSWORD vráti niečo takéto (to sa do 15 znakov nevojde):
Dakujem, uz je mi to jasne a uz aj ta * na zaciatku . Trochu zmatku som narobil. ale aspon som sa dozvedel o MD5, uz som ju odskusal a s nou to ide v pohode.
Este raz dakujem