Какой способ шифрования использовать для хранения API ключей в БД?
FLASK, PYTHON 3.10
В настоящий момент заказчик хранит API ключи в бд в открытом виде.
Заказчик хочет хранить API ключи пользователей в БД в зашифрованном виде.
Требуется такое решение:
Старые API ключи не изменятся.
Дешифрованный API ключ предоставляется пользователю > пользователь делает запрос к приложению с API ключом > на бекэнде ключ шифруется с помощью единого секрета и сравнивается со значениями в БД.
Почему не подходит хеш, как обычно делают для паролей? В приложении требуется всегда показывать API ключ в расшифрованном виде (в личном кабинете пользователя).
Cначала сделал с помощью AES со статичным nonce, но в последствии понял, что это неприемлимо.
Есть ли адекватный метод шифрования с единым секретом?
Если вы берете на себя шифрование секретов своими методами - то надо обсудить насколько
надежны ваши методы и какие усилия надо будет сделать экстренно если исходник утек или
ключ скомпрометирован. Это - вопрос в духе законов Керхгофа.