Как написать библиотеку для расшифровки чего-либо, не записывая секретный ключ открытым текстом? - PullRequest
0 голосов
/ 04 августа 2020

Я использую библиотеку utils для шифрования / дешифрования данных, просто вызывая методы со следующей подписью:

String encrypt(String clearText, String secretKey)
String decrypt(String encryptedText, String secretKey)

Оба метода шифрования / дешифрования используют одни и те же logi c и шифрование. Это означает, что один и тот же ввод в методы всегда генерирует один и тот же вывод.

Теперь цель состоит в том, чтобы написать вспомогательный метод для расшифровки некоторых строк подключения, ранее сохраненных в файле, с использованием метода шифрования. Этот вспомогательный метод должен вызывать функцию дешифрования с помощью secretKey в открытом тексте:

String connectionStringEncrypted = Utils.getProperty("connectionString", "C:\\Path\\To\\application.properties");
String connectionString = Utils.decryptConnectionString(connectionStringEncrypted);

Вопрос: как мне избежать записи секретного ключа открытым текстом во вспомогательном методе Utils .decryptConnectionString ?

1 Ответ

1 голос
/ 04 августа 2020

Существует слишком много простых и сложных методов решения этой проблемы, я могу сказать некоторые, начиная с Простые методы

  • Просто закодируйте ключ в Base64. Поместите закодированный ключ с функцией декодирования Base64. Так что текст выглядит нечитабельным. Во время выполнения выполняется функция декодирования, и исходный ключ передается в функцию дешифрования.

  • Разделение и размещение ключей в разных классах с разными переменными stati c (легкий доступ) и в методе дешифрования. передать все переменные stati c для добавления, чтобы сформировать действительный ключ дешифрования Примечание: - Эти простые шаги могут быть предсказаны pro

Расширенные методы:

  • Используйте алгоритм RSA для использования разных ключей для шифрования и дешифрования (ie. Publi c и закрытые ключи)
  • Вы также можете попытаться скрыть ключи внутри зашифрованного текста. Здесь нет необходимости использовать ключи stati c. Процесс включает в себя создание нового ключа, шифрование текста и скрытие ключей в зашифрованном тексте, сохранение в файле, во время дешифрования получение зашифрованного текста из файла, извлечение ключей, расшифровку данных. Примечание: - Этот метод требует осторожного обращения
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...