Я хотел бы защитить свою базу данных секретной информации с помощью мастер-ключа или мастер-пароля и зашифровать данные. Только если пользователь введет правильный главный ключ, данные будут расшифрованы.
Очевидно, что при создании мастер-ключа я должен сохранять его только как хеш-значение (например, SHA). Но тогда мне также нужен ключ для шифрования данных (например, AES). Я думал об использовании значения хэша мастер-ключа в качестве ключа для шифрования.
Но, наверное, это небезопасно, верно?
Если пользователь вводит ключ, хеш вычисляется и сравнивается с сохраненным значением хеша. Если они совпадают, база данных должна быть зашифрована.
Но сохранение значения хеш-функции главного ключа и использование его в качестве ключа для шифрования, вероятно, представляет собой угрозу безопасности, верно?
Должен ли я использовать реальную (незашифрованную) версию мастер-ключа для шифрования данных с помощью?
Или просто пропустить шаг, сравнивая значение хеш-функции с введенным паролем, и вместо этого просто пытаться зашифровать данные введенным паролем?
Надеюсь, вы понимаете, что я пытаюсь рассказать вам о моей проблеме. Заранее большое спасибо!