Могу ли я md5 (sha1 (пароль))?

Я в настоящее время кодирую мою собственную CMS, и я нахожусь в состоянии пароля …

Я хочу знать, могу ли я md5 пароль, а затем после этого?

Подобно:

 $password = md5(sha1(mysql_real_escape_string($_POST['passw']))); 

Вы можете md5 любые данные, которые хотите, даже если они были хэшированы раньше.

Это, однако, только увеличит риск столкновений, потому что теперь вы работаете над меньшим набором данных.

Чего вы пытаетесь достичь?

Да, ты можешь. Нет, это не имеет смысла.

Безопасность цепочечных хэш-функций всегда равна или меньше, чем безопасность самого слабого алгоритма.

т.е. md5 (sha1 ($ something)) не более безопасен, чем sha1 ($ something): если вам удастся сломать sha1, вы получите md5 бесплатно, так как shat ($ something) и sha1 ($ faked_something) имеют то же значение, и, следовательно, md5ing их ничего не изменит.

Вы, очевидно, можете. Я не понимаю, почему ты не мог.

Если вы хотите улучшить безопасность, вы должны рассмотреть что-то вроде phpass .

Вы можете это сделать, но нет никакой реальной выгоды для этого. Если вы используете свои пароли через md5() , вы сможете получить дополнительную защиту от добавления криптографической соли.

Что такое СОЛЬ и как его использовать? имеет больше информации об этом.

Другой совет, который вы можете услышать много, – не использовать MD5 . SHA1 сравнительно силен, и вам нужно всего лишь изменить свое поле пароля в своей базе данных, чтобы принять строку из 40 символов.

Удостоверьтесь, что вы добавили туда соль, это значительно усложняет использование таблиц радуги против паролей вашего клиента / пользователя.

Что-то вроде:

$ hashedPassword = sha1 (md5 ($ password). $ salt. sha1 ($ salt. $ password));

Там, где соль может быть хорошей длинной случайной строкой, либо постоянной по вашей заявке, либо солью на контакт, которая хранится вместе с пользователем.