Този въпрос е задаван много, с различен избор на думи (което затруднява да се каже „Просто го потърсете!“). Този факт предизвика публикация в блога, озаглавена The Изчерпателно ръководство за криптиране на URL параметри в PHP .
Какво искат да правят хората тук
Какво трябва да направят хората вместо това
Обяснение
Обикновено хората искат къси произволно изглеждащи URL адреси. Това не ви позволява много място за криптиране и след това удостоверяване идентификационният номер на записа в базата данни, който искате да закриете. Това ще изисква минимална дължина на URL адреса от 32 байта (за HMAC-SHA256), което е 44 знака, когато е кодирано в base64.
По-проста стратегия е да генерирате произволен низ (вижте random_compat
за PHP5 реализация на random_bytes()
и random_int()
за генериране на тези низове) и посочете тази колона вместо това.
Също така, хашидите са счупени чрез прост криптоанализ. Заключението им гласи:
Атаката, която описах, е значително по-добра от атака с груба сила, така че от криптографска гледна точка алгоритъмът се счита за счупен, доста лесно е да се възстанови солта; прави възможно на атакуващия да изпълни кодирането в двете посоки и обезсилва свойство 2 за идеална хеш функция.
Не разчитайте на това.