tardis
lazy
Шифрование паролей
Здравствуйте, не могу понять как лучше хранить зашифрованные crypt'ом пароли в базе - вместе с salt или без.
Кстати, у меня сrypt копирует salt в начало возвращаемой строки и при MD5-шифровании, а не только при DES, вопреки утверждениям php.net.
Предположим, в таком виде (вместе с salt) я и буду записывать в базу хэш.
В таком случае, если кто-нибудь стырит базу, то пароли с salt легче будет "расшифровать" на машине злоумышленника, так как по самому хэшу будет понятно, какой алгоритм используется и с каким salt надо осуществлять перебор.
Или я могу сначала вырезать хэш после salt и записывать уже его. В этом случае, конечно я уже не смогу в случае чего поменять salt (а надо ли, т.е. может ли это зачем-то потребоваться?), т.е. salt должен быть выбран раз и навсегда. Тогда, если какой-нибудь умник после меня залезет в скрипт и сдуру поменяет salt (а я уже не буду работать на того, для кого это реализовывал), то расшифровать пароли уже будет нереально.
В общем интересует, какой способ более правильный и существенны ли те подводные камни, которые я описал.
Здравствуйте, не могу понять как лучше хранить зашифрованные crypt'ом пароли в базе - вместе с salt или без.
Кстати, у меня сrypt копирует salt в начало возвращаемой строки и при MD5-шифровании, а не только при DES, вопреки утверждениям php.net.
Предположим, в таком виде (вместе с salt) я и буду записывать в базу хэш.
В таком случае, если кто-нибудь стырит базу, то пароли с salt легче будет "расшифровать" на машине злоумышленника, так как по самому хэшу будет понятно, какой алгоритм используется и с каким salt надо осуществлять перебор.
Или я могу сначала вырезать хэш после salt и записывать уже его. В этом случае, конечно я уже не смогу в случае чего поменять salt (а надо ли, т.е. может ли это зачем-то потребоваться?), т.е. salt должен быть выбран раз и навсегда. Тогда, если какой-нибудь умник после меня залезет в скрипт и сдуру поменяет salt (а я уже не буду работать на того, для кого это реализовывал), то расшифровать пароли уже будет нереально.
В общем интересует, какой способ более правильный и существенны ли те подводные камни, которые я описал.