Hromadné zahashování hesel v MySQL
Dobrý den,
mám velkou (testovací) databázi uživatelů. U těchto uživatelů potřebuji nyní hromadně nastavit hesla ve sloupci user_heslo ze zcela nezabezpečených na bezpečná, tudíž zahashovaná. Samozřejmě potřebuji, aby byla hesla i nadále funkční.
Předem děkuji za odpověď.
update tabulka set pole = password(pole);
potom ale pri prihlasovani musis pouzivatelom zadane heslo checkovat nie zadane heslo voci hash, ale hash voci hash.
Cize do DB pride heslo, ktore zadal a skontrolujes ho tak, ze porovnas pole z tabulky voci password(zadane_heslo)
Myslel jsem, zdali neexistuje nejaky rychly prikaz v phpMyAdminovi.
a ten update akoze je pomaly prikaz?
este raz a pomaly:
momentalne mas user, ktori sa prihlasuju na stranku, cize zadaju meno a heslo. Ty potom zistujes v tabulke, ci existuje user s danym menom a heslo, pricom porovnavas meno s meno a heslo s heslom.
Ked urobis ten update, spravi z hesiel necitatelne hashe. Musis ale upravit potom prihlasovanie tak, ze najde v tabulke, ci existuje user s danym menom a hashom. User na stranke alebo kde zada svoje meno heslo, ty ho cez prikaz password zahashujes a porovnas voci zahashovanym heslam v tabulke pouzivatelov.
látot?
jak říká wam_Spider007 musíš to prohnat updatem.. ale také upravit skripty.. ty skripty co máš, tak zjevně budou čekat že tam bude to heslo "nezabezpečené"... a uživatel zadá například "heslo", ale v databázi bude nějaký hash a když si to porovnáš, tak se to nerovná.. to znamená, že už ve skriptech si musíš to heslo co uživatel zadává zahashovat a to následně teprve porovnávat s DB
Takže když mám:
Kde mám vložit hash?
To heslo hashuj ještě před dotazem v PHP.
Ale především : Tvůj dotaz v mysql_query není bezpečný. Např. řetězcové hodnoty sevři do mysql_real_escape_string.
Viz
http://php.net/manual/en/function.mysql-real-escap e-string.php
i s příklady.
Fatal error: Call to undefined function password() on line 16
Password je funkce MySQL k hashování, takže by to mělo fungovat takto :
(neodzkoušeno).
Anebo použij ještě předtím funkce PHP.
A znovu připomínám mysql_real_escape_string !!!
nj, tak to vyzera, ked sa namiesto SQL procedur pouziva drbanie SQL query do PHP kodu.
osobně bych to viděl nějak takto
já používám v PHP hashování do MD5
ale nyní už využívám i tzv. "sůl".. takž nějak takto
ja tomu rozumim jak koza petrželi, neb jde mysql mimo mne ale sul byla vzdycky druhy parametr hashe, ne pouziti sha1 a md5 dohromady co tu vidim.
vzdyt cisty update je to nejrychlejsi co muzes mit, v Oracle muzes alternativne to pustitl paralelne a vynutit si asynchorni commit - a tim si skoncil, rychlejsi jiz to NEBUDE.