| Autor | Zpráva | ||
|---|---|---|---|
| Jany Profil * |
#1 · Zasláno: 20. 12. 2008, 13:26:16
Ahoj,
v db mám uloženy uživatelské údaje ve smyslu uživatelské jméno + heslo zajímalo by mne, jaký datový typ pro uživatelské jméno použít jde mi především o to, že by každé uživatelské jméno mělo být unikátní. Dále bych se chtěl zeptat jak ukládat heslo. V čem je nevhodná plain-text podoba? Různým hasshům a šifrováním moc nerozumím. Moje představa je asi taková, že při uložení do databáze by se heslo nějak zašifrovalo. Při porovnávání se zadaným heslem (např. když se uživatel přihlašuje) by se heslo zadané uživatelem také zašifrovalo a porovnávaly by se zašifrované podoby oněch hesel. Co Vy na to? Jaké použít pro šifrování hesel funkce? |
||
| Mastodont Profil |
#2 · Zasláno: 20. 12. 2008, 13:28:26
jde mi především o to, že by každé uživatelské jméno mělo být unikátní
Typ varchar a přiřadit sloupci unique index |
||
| Jany Profil * |
#3 · Zasláno: 20. 12. 2008, 13:49:16
oka, a jaký datový typ pro hesla?
|
||
| ninja Profil |
#4 · Zasláno: 20. 12. 2008, 13:52:30
Jany: pro hesla stejny (varchar, pripadne char), bez unikatniho indexu. Hesla pak ukladas jako MD5(heslo).
|
||
| yFang Profil |
#5 · Zasláno: 20. 12. 2008, 13:56:16
ninja
„pro hesla stejny (varchar, pripadne char), bez unikatniho indexu. Hesla pak ukladas jako MD5(heslo).“ Jen se zeptám, když už to tady je, v čem je lepší MD5, než SHA1 či PASSWORD? |
||
| Jany Profil * |
#6 · Zasláno: 20. 12. 2008, 13:56:17
„Hesla pak ukladas jako MD5(heslo).“
Oka, a jak potom porovnám heslo v databázi ze zadaným heslem, když to v databázi je v MD5? |
||
| joe Profil |
#7 · Zasláno: 20. 12. 2008, 13:59:00
yFang
Jedná se o různé algoritmy. Pokud nejsi paranoidní, tak stačí MD5. Typ PASSWORD v db bych nepoužíval, ale nemam s ním žádné zkušenosti, tak nevím. Jany Napřed uděláš md5 z hesla co zadá uživatel a porovnáš s md5 hashem, který už v db je u daného uživatele. |
||
| Jany Profil * |
#8 · Zasláno: 20. 12. 2008, 14:17:16
Oka, a umí nějak mysql vytvořit z již uložených dat md5hash?
V db mám nějaké slovo jako heslo, použitím Funkce MD5 se mi vygeneruje hash. Lze to nějak udělat hromadně pro celý sloupec? |
||
| Mastodont Profil |
#9 · Zasláno: 20. 12. 2008, 14:37:42
Jany
Už jsi někdy slyšel slovo Google? |
||
| yFang Profil |
#10 · Zasláno: 20. 12. 2008, 14:54:00
joe
Typ PASSWORD v db bych nepoužíval, ale nemam s ním žádné zkušenosti, tak nevím. Já mám třeba jednu knížku o PHP a MySQL a tam používají na ukládádní hesel jenom PASSWORD. |
||
| Mastodont Profil |
#11 · Zasláno: 20. 12. 2008, 15:18:21
PASSWORD je funkce, ne datový typ. A sám manuál k MySQL ji nedoporučuje používat.
|
||
| Alphard Profil |
#12 · Zasláno: 20. 12. 2008, 15:38:20
krom toho, password AFAIK nemá nemá PHP alternativu, jeden z důvodů, proč ho nepoužívám
|
||
| yFang Profil |
#13 · Zasláno: 20. 12. 2008, 15:53:27
No já už teď PASSWORD taky nepoužívám. Zajímalo by mě, co je lepší, jestli SHA1 nebo MD5 a proč.
|
||
| Alphard Profil |
#14 · Zasláno: 20. 12. 2008, 16:11:06
IMHO sha1()
kvůli větší délce hashe, md5 je více "profláklé", existuje pro něj více rainbow tables + AFAIK různé zprávy o prolomení, pak následné, že nikdo nic neprolomil apod., v každém případě si myslím, že pro případný útok hrubou silou lze alespoň omezit možnosti, když ne najít klíč když se to trochu osolí, tak na běžném webu (kde nejde o peníze (nebo o nějaké drobné), popř. hodně velkou návštěvnost) není problém stejně, když už se někdo dostane do databáze, tak je to IMHO ve většině případů problém srovnatelný s tím, že zjistí hesla |
||
|
Časová prodleva: 17 let
|
|||
0