Первый способ заключается в том, чтобы распространять пароль в отдельном файле и читать их во время выполнения через Properties
API. Легко и просто. Если вы добавите некоторую кодировку base64, это защитит вас от детей сценария. Публикационный исходный код будет раскрывать только способ хранения пароля. Конечно, утечка кода и файла по-прежнему является проблемой.
Второй метод очень похож. Сохраните пароль как переменную среды и прочитайте их через System.env
. В этом случае для того, чтобы знать, что злоумышленник пароля должен получить доступ к ОС, чтобы прочитать пароль. Это делает его немного сложнее.
Третий способ заключается в двухэтапный пароль. Первый пароль, который вы храните с использованием второго метода, - это пароль к зашифрованному файлу AES, который содержит основной пароль.
В нашем проекте мы используем второй метод. Это защищает нас от разоблачения пароля, если код протекает (как-то), однако, если кто-то нарушает безопасность сервера, тогда ... тогда у нас будет гораздо более серьезная проблема, чем утечка пароля.
пс. вы можете попытаться сыграть с Honey Encription, чтобы сделать его немного сложнее. Атакующий не знает, что у него действующий пароль или просто что-то похожее.
Вы правы, единственным безопасным местом для ввода пароля является мозг человека. Но вы можете усложнить чтение путем преобразования его побитовым в HEX-номера или кодировку base64 (или их комбинацию). Еще одной идеей будет XOR с определением даты создания файлов, но это может быть хрупким. –