sql >> Databáze >  >> RDS >> Mysql

Jedinečné textové pole v MySQL a php

Pro sůl je jedinečnost důležitější než délka a předvídatelnost. Předpokládáte, že útočník má sůl.

Univerzálně jedinečný identifikátor (UUID) by byl nejlepší a existují příklady, které generují univerzálně jedinečné identifikátory na stránce dokumentu pro php uniqueid() funkce. UUID má výhodu oproti náhodnému řetězci v tom, že je čitelný člověkem a má pevnou délku, takže jej můžete uložit do pole varchar a použít jedinečný index, abyste zajistili, že nikdy nebudou duplikáty.

Hašování času pomocí MD5 je běžná metoda pro generování jedinečných hodnot, protože má pevnou délku a je čitelný člověkem. Dává však větší smysl vygenerovat náhodný řetězec s pevnou délkou a sami jej zakódovat do hex. Hashe nejsou navrženy tak, aby byly jedinečné, jako spíše tak, aby nebyly vratné. Použití hašovací funkce zaručuje kolize, i když u SHA1 bude kolize méně než u MD5.

Délka soli je skutečně pouze faktorem, protože čím delší je sůl, tím je pravděpodobnější, že bude univerzálně jedinečná.



  1. SQL dotaz pro získání nejnovějšího řádku pro každou instanci daného klíče

  2. Proč se mi u mého PHP stále zobrazuje chyba 500?

  3. Vzory šablon a modifikátory pro číselné formátování v PostgreSQL

  4. výstup čísla formátu mySQL, oddělovač tisíců