Мне нужен алгоритм хеширования подобный md5, но я не знаю, стоит ли его использовать ибо раз есть сервисы подобные http://md5list.ru/ (не реклама), то вполне ожидаемо, что любой пользователь (обладающий навыками программирования на си) сможет попытаться расшифровать пароли из базы данных путем генерации слов и их хешей с сопоставления с хешами из базы данных.
Соль не является гарантом безопасности по той причине, что умный пользователь умудрившийся выкрасть базу данных, сумеет выкрасть и код приложения в котором и будет указание на соль (по этой причине считаю соль неэффективной). Скажем так - меня интересует, есть ли алгоритм хеширования создающий хеш большей длинны. Это нужно, чтобы подбор паролей был максимально долгим.
Многие начинающие программисты говорят об эффективности md5 хеш, но забывают, что дешифровке подвергается все пароли из базы данных. т.е. У нас есть большая база данных пользователей (около 100 тысяч) и украденное приложение. Читая исходники мы рассматриваем алгоритм соления, а затем наши пароли из бд сортируем для того, чтобы было удобно использовать бинарный поиск. Начинаем перебор всех возможных вариантов попутно проверяя их на базе данных (которая находится в оперативной памяти - объемы позволяют) и за сравнительно короткое время получаем небольшой такой список расшифрованных паролей.
конструкцию md5(соль1+md5+соль2) считаю нехорошей вещью, ибо количество коллизий возрастает. Если я ошибаюсь - прошу объяснить почему.
p.s. просьба сильно не пинать, если сморозил глупость. Уровень в создании программ - джуниор, а как криптограф - ноль.