Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem 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ěď.

Předmět Autor Datum
update tabulka set pole = password(pole); potom ale pri prihlasovani musis pouzivatelom zadane hesl…
wam_Spider007 26.01.2012 23:37
wam_Spider007
Myslel jsem, zdali neexistuje nejaky rychly prikaz v phpMyAdminovi.
meteos 27.01.2012 00:03
meteos
a ten update akoze je pomaly prikaz? este raz a pomaly: momentalne mas user, ktori sa prihlasuju na…
wam_Spider007 27.01.2012 00:11
wam_Spider007
jak říká wam_Spider007 musíš to prohnat updatem.. ale také upravit skripty.. ty skripty co máš, tak…
tomas.kulhanek 27.01.2012 08:41
tomas.kulhanek
Takže když mám: $MSQ = MySQL_Query('insert into user values("","'.$_POST[user_jmeno].'","'.$_POST[u…
meteos 27.01.2012 12:10
meteos
To heslo hashuj ještě před dotazem v PHP. Ale především : Tvůj dotaz v mysql_query není bezpečný. Na…
hynajs 27.01.2012 12:24
hynajs
$MSQ = MySQL_Query('insert into user values("","'.$_POST[user_jmeno].'","'.$_POST[user_prijmeni].'",…
wam_Spider007 27.01.2012 15:22
wam_Spider007
Fatal error: Call to undefined function password() on line 16
meteos 28.01.2012 11:44
meteos
Password je funkce MySQL k hashování, takže by to mělo fungovat takto : $MSQ = MySQL_Query('insert…
hynajs 28.01.2012 13:40
hynajs
nj, tak to vyzera, ked sa namiesto SQL procedur pouziva drbanie SQL query do PHP kodu.
wam_Spider007 28.01.2012 14:10
wam_Spider007
osobně bych to viděl nějak takto <?php $MSQ = MySQL_Query('insert into user values("","'.mysql_real…
tomas.kulhanek 27.01.2012 17:09
tomas.kulhanek
ja tomu rozumim jak koza petrželi, neb jde mysql mimo mne ale sul byla vzdycky druhy parametr hashe,… poslední
AZOR 28.01.2012 17:08
AZOR
vzdyt cisty update je to nejrychlejsi co muzes mit, v Oracle muzes alternativne to pustitl paralelne…
AZOR 28.01.2012 17:06
AZOR

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)

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

Password je funkce MySQL k hashování, takže by to mělo fungovat takto :

$MSQ = MySQL_Query('insert into user values("","'.$_POST[user_jmeno].'","'.$_POST[user_prijmeni].'",
	"'.$_POST[user_login].'",password("'.$_POST[user_heslo].'"),"'.$_POST[user_tel].'","","'.$_POST[user_email].'","")');

(neodzkoušeno).
Anebo použij ještě předtím funkce PHP.
A znovu připomínám mysql_real_escape_string !!!

osobně bych to viděl nějak takto

<?php $MSQ = MySQL_Query('insert into user values("","'.mysql_real_escape_string($_POST['user_jmeno']).'","'.mysql_real_escape_string($_POST['user_prijmeni']).'",
    "'.mysql_real_escape_string($_POST['user_login']).'","'.md5(mysql_real_escape_string($_POST['user_heslo'])).'","'.mysql_real_escape_string($_POST['user_tel']).'","","'.mysql_real_escape_string($_POST['user_email']).'","")');  

já používám v PHP hashování do MD5

ale nyní už využívám i tzv. "sůl".. takž nějak takto

<?php sha1(md5($password).$login)

Zpět do poradny Odpovědět na původní otázku Nahoru