Tato otázka byla často kladena, s různou volbou slov (což znesnadňuje říci:"Jen to hledej!"). Tato skutečnost podnítila blogový příspěvek s názvem The Komplexní průvodce šifrováním parametrů URL v PHP .
Co zde lidé chtějí dělat
Co by lidé měli dělat místo toho
Vysvětlení
Lidé obvykle chtějí krátké náhodně vypadající adresy URL. To vám neumožňuje zašifrovat a následně ověřit ID záznamu databáze, který chcete zatemnit. To by vyžadovalo minimální délku adresy URL 32 bajtů (pro HMAC-SHA256), což je 44 znaků při kódování v base64.
Jednodušší strategií je vygenerovat náhodný řetězec (viz random_compat
pro implementaci PHP5 random_bytes()
a random_int()
pro generování těchto řetězců) a místo toho odkazujte na tento sloupec.
Také hashidy jsou rozbité jednoduchou kryptoanalýzou. Jejich závěr uvádí:
Útok, který jsem popsal, je výrazně lepší než útok hrubou silou, takže z kryptografického hlediska je algoritmus považován za prolomený, je docela snadné získat sůl; umožňuje útočníkovi spustit kódování v obou směrech a zneplatní vlastnost 2 pro ideální hashovací funkci.
Nespoléhejte na to.