Я продолжаю слышать, что вы не должны раскручивать свою собственную криптографию и что самодельные алгоритмы могут создавать уязвимости. Примером может служить хранение паролей с набором хеш-функций: bcrypt(md5(password))
. Первый потенциально слабее, чем bcrypt(password)
.
Теперь, когда у меня есть время подумать об этом, bcrypt(password)
слабее, чем bcrypt(md5(password))
для меня. Я знаю, как пытаться атаковать по словарю на bcrypt(password)
с Джоном Потрошителем, но не bcrypt(md5(password))
.
Как я могу дать Джону Потрошителю команду md5(x)
в качестве пароля при наличии хеша / списка хэшейгенерируется из bcrypt(md5(password))
? (x
- это потенциальный пароль, сгенерированный Джоном Потрошителем с использованием инкрементного флага)