2013-08-30 6 views
0

Я создаю приложение в Java, которое требует, чтобы переменная была полностью секретной и не была доступна для всех. Первоначально я думал об использовании «частного» модификатора доступа, однако это все равно оставило бы его уязвимым для размышлений. Я понятия не имею, может ли доступ к «защищенным» также получить отражение, и я надеюсь, что кто-то может дать мне способ запретить другим программам доступ к этой переменной во время выполнения!Скрытие переменной из других приложений и классов

Большое спасибо заранее, Эдвард Браун

+0

Используйте ** код обфускатор ** тоже , Подобно тому, как в базе данных хранится пароли, вы можете сделать это, когда требуется только проверка. Или вы можете использовать Java KeyStore для хранения значения (возможно, даже более опасного). Или вы можете получить значение, используя native C. Это зависит от точки использования. Вы можете разбить биты значения по нескольким переменным и постоянно переводить/преобразовывать их. –

+0

«Требуется», почему? Вы должны объяснить свой вариант использования. – chrylis

ответ

1

Отражение не может видеть любой переменной независимо от модификатора доступа. Если вы храните его в памяти, его можно увидеть.

Почему так важно, что это полностью секретно? Если это пароли, я рекомендую вам прочитать о различных способах хранения паролей, как эти ссылки:

SO вопрос: Why is char[] preferred over String for passwords?

этого блог для шифрования паролей: http://www.javacodegeeks.com/2012/05/secure-password-storage-donts-dos-and.html?ModPagespeed=noscript

+0

Нет, я не хранил пароль в виде простого текста или что-то в этом роде. Мне просто нужно скрыть ключ шифрования во время выполнения. – user2104251

+0

Ключ шифрования, я имею в виду симметричный ключ криптографии, который я использую для того, чтобы клиент и сервер могли безопасно общаться друг с другом. – user2104251

Смежные вопросы