Как упомянуто в заголовке, я пытаюсь надежно сохранить ключ API и загрузить его для использования всякий раз, когда приложению это необходимо. Согласно информации, полученной мною до настоящего времени (пожалуйста, исправьте меня или добавьте, если что-то не так или недостаточно), я могу попробовать следующие методы:
Позвольте файлу, содержащему секретный ключ, остаться вне пакета; например, сохранение ключа в переменной среды или в коде на стороне сервера (затем вызов HTTP-запроса для получения данных).
Либо / и запутываем, либо / и шифруем ключ перед его сохранением.
Использовать встроенную систему хранилища ключей, такую как flutter_secure_storage.
Если ключ хранится локально, а приложение отправляется на github, добавьте имя файла в .gitignore, чтобы предотвратить фиксацию файла.
В результате мой план таков:
1) Сохраните ключ в переменной окружения на моем локальном компьютере -> 2) Создайте API, который отправляет ключ клиенту, в моем коде на стороне сервера -> 3) На стороне клиента сохраните полученный ключ, используя библиотека flutter_secure_storage (шифрование пары ключей RSA).
Причина, по которой я хочу хранить ключ на стороне сервера, заключается в том, что я прочитал статью о том, что декомпиляция моего приложения может легко получить любой секретный ключ, только если ключ хранится в приложении.
Однако мне все еще не ясно, правильны ли мои представления и подходы. Любой совет будет оценен. Спасибо.