Как добиться шифрования и дешифрования в Java - PullRequest
0 голосов
/ 11 апреля 2019

Привет, я новичок в Java, и я хочу разработать простое приложение для входа в систему, где я должен хранить значения в БД. Я прочитал много примеров для шифрования и дешифрования, но я не могу понять (может быть из-за сложных английских слов), что такое алгоритм, ключ, заполнение и почему мы должны использовать getBytes (). Можете ли вы объяснить подробно с примерами на простом английском языке. Какой алгоритм, заполнение, лучше всего использовать для шифрования и дешифрования. Мы вводим предопределенное фиксированное слово или мы можем установить наш собственный ключ. Код будет очень полезен.

Ответы [ 2 ]

1 голос
/ 12 апреля 2019

Я на самом деле приятно удивлен, кто-то спросил, прежде чем сделать это неправильно.

Однако то, что вы спрашиваете, довольно широко для одного ответа.Я бы посоветовал пройти хотя бы несколько базовых курсов по криптографии (я бы рекомендовал Coursera . Даже если вы не закончите свой курс, вы получите довольно хорошие основы, что и почему вы должны или должныне делать.

простое приложение для входа в систему, где мне нужно хранить значения в дБ

Если в качестве значений вы имеете в виду пароли пользователей, то используйте хеш с медленным солью, пожалуйста, прочитайте https://nakedsecurity.sophos.com/2013/11/20/serious-security-how-to-store-your-users-passwords-safely/

Если вы хотите зашифровать некоторые значения обратимо, есть множество примеров, хотя не все они безопасны,

Код будет очень полезен

вы можете проверить https://gusto77.wordpress.com/2017/10/30/encryption-reference-project/

что такое алгоритм, ключ, заполнение и почему мы должны использовать getBytes ().

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

Для алгоритма, заполнения, .. Iочень советую вам узнать об этом немного больше самостоятельно.

Есть шифры (алгоритм), которые сегодня считаются безопасными, более важно, чтобы вы использовали их правильно.

Просто для примера, обычно используется AES/CBC/PKCS5Padding

.Вводим предопределенное фиксированное слово или мы можем установить наш собственный ключ.

Ключ - это ваше секретное значение, вам нужен тот же ключ для дешифрования зашифрованных данных, но ключ ваш, лучше всего, если он случайный

1 голос
/ 11 апреля 2019

Я новичок в этом вопросе, так что я просто рекомендую хэшировать и складывать пароли, я не могу предложить гораздо больше информации, но я нашел это видео , которое я нашел довольно обширным и интересным по этому вопросу,и iirc он даже показывает некоторые примеры кода и примеры, я рекомендую начать с этого и вернуться с сомнениями из этого!

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

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

Запомните, сгенерируйте случайную строку, объедините ее, хешируйте строку, сохранитехэш и случайная строка в БД, и сравнить при входе в систему.

...