Obvykle není potřeba zpětně šifrovat heslo. Tato schopnost ze své podstaty snižuje bezpečnost systému. Místo toho použijte nevratnou hashovací funkci. Navrhuji SHA-256 (nebo větší), který vytváří řetězec:
SHA2 (CONCAT (user.name, user.password, 'some salt', user.id), 256)
Také jsem frustroval hromadné duhové stoly z jakéhokoli použití tím, že vložíte jiná data, která jsou vždy známá v době ověření hesla.
SHA2
vyžaduje MySQL 5.5 nebo novější. Pokud používáte starší verzi, SHA1()
je téměř stejně dobrý a obecně mnohem lepší než MD5
, AES
, atd.