Autor | Zpráva | ||
---|---|---|---|
Jirin Profil |
#1 · Zasláno: 30. 8. 2013, 14:09:36
Zdravím,
chci se poptat, jak se nejlépe dá vyřešit změna hashovacího algoitmu. Měl jsem starší web, v kterém bylo heslo ukládáno klasicky pomocí md5(password), což příliš bezpečné není. Pak jsem si přečetl něco o soli, tak jsem chtěl přidat solení, jenže už jsem nepochopil, že solení má být pro každý záznam jiné, tak jsem dal pevnou sůl a ještě, abych to převedl všem, tak mě nenapadlo nic jiného než md5(md5(password) . $salt) - double hashing asi taky nebude úplně ideální. Nicméně teď bych chtěl přejít na něco, kde budu mít dynamický salt + nějaký bezpoečnější algoritmu, jak to nejlépe vyřešit, abych samozřejmě neodřízl staré uživatele. |
||
Jan Tvrdík Profil |
Jirin:
Použij funkci crypt s blowfish hashováním. Migraci je nejsnazší založit na délce hashe, takže něco jako function authenticate($username, $password) { $user = $this->getUserByUsername($username); if (strlen($user->password) === 32) { // md5 hash má 32 znaků if (oldHash($password) === $user->password) { $this->updateUserPassword($username, newHash($password)); return true; } else { return false; } } else { return (newHash($password) === $user->password); } } |
||
Časová prodleva: 3 dny
|
|||
Jirin Profil |
#3 · Zasláno: 2. 9. 2013, 12:37:40
Díky za reakci, či-li zkrátka když se bude přihlašovat někdo se starým heslem, tak ho příhlásíma změním na nové v databázi. To zní dobře.
Jinak místo crypt asi spíš použiju, password_hash, sice je to pro PHP 5.5 až, nicméně na githubu je password_compat, který umožňuje to samé u php < 5.5 |
||
Časová prodleva: 11 let
|
0