Хранение паролей в базе, корректна и безопасна ли логика шифрования?
Для клиента нужна система хранения паролей к разным проектам, причем к каждому паролю может быть один доступ у разных пользователей (это необходимое, неоспариваемое условие).
На случай кражи базы или файлов проекта - ключ шифрования нигде не должен быть засвечен.
Что если:
Шифруем пароли одним мастер ключем.
У каждого юзверя системы есть свой ключ, которым шифруется мастер. Соотственно каждый юзверь для доступа к конечному паролю вводит свой персональный ключ -> система расшифровывает мастер -> расшифровывает пароль -> выдает пользователю системы. Все это обвешено логикой прав доступа на уровне системы.
Укажите на недостатки логики, в защите данных я профан)
При таком подходе я вижу проблему если хранить сохранять персональный ключ в сессии
Еще вам придется для каждого юзера хранить зашифрованный мастер. Если мастер в открытом виде будет в скриптах - заливка шелла или чтение файлов через mysqli может привести к печальным результатам...