![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| rrrookie |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 21.6.2006 Где: Rīga Репутация: нет Всего: нет |
Привет!
Как в Java лучше криптовать пароли при логине? Ест несколько стандаров для криптования: MD-5 http://tools.arlut.utexas.edu/gash2/doc/ja...5/MD5Crypt.html SHA-1- http://www.superwaba.org/doc/superwaba/ext...rypto/SHA1.html SHA-160 - http://www.gnu.org/software/gnu-crypto/man...ash/Sha160.html Которий из них лучше? Например попробую закриптовать пароль в SHA-1 ->
После выполнения етого кода байты с криптованным паролем хранятся в passwordByte Правильно? Добавлено @ 14:31 И где можно найти jar'ы с упомянутыми классами? Спасибоо! |
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
А где ты нашел эти классы? Вообще результат удобнее представлять в виде строки. Вот пример для MD5:
|
|||
|
||||
| rrrookie |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 21.6.2006 Где: Rīga Репутация: нет Всего: нет |
Спасибо за вариант!
Где нашол? Я слышал что ето оченЬ хорошие алгритмы для криптования: SHA-1, SHA-160 реализацию в Java нашол через гугл. А как обычЬно криптуют паролЬи? ИсполЬзуя МД5? да? |
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
В собственном проекте. Я использую MD5, но вообще что-то слышал, что у него нашли какие-то уязвимости. У меня проекты не требуют какой-то параноидальной безопасности, поэтому и MD5 сойдет. |
|||
|
||||
| rrrookie |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 21.6.2006 Где: Rīga Репутация: нет Всего: нет |
||||
|
||||
| Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 9 Всего: 39 |
SHA - обычные алгоритмы хэширования данных, широко используются при создании ЭЦП.
|
|||
|
||||
| Hidrag |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: 3 Всего: 25 |
такой вопрос: хочу защитить свою программу паролем, пароль шифровать md5, а где лучше хранить этот файл? Так чтобы его не подминили. Хотел хранить в jar, но тогда как его изменить, ведь как я понял в собственный jar приложение писать не может...
Вообще задумка была такая: 1. при запске jar, считывается контрольная сумма этого jar (с помощью md5) если она совпадает с записанной в ресурс строкой в Jar приложение запускается, если нет, то закрывается. 2. если предыдущий этап пройден, вылазит окно с ввводом пароля, юзер вводит пароль, это значение шифруется md5 и если оно совпадает с другой строкой из ресурса, то можно работать, если нет приложение закрывается. 3. Пользователь должен иметь возможность сменить пароль. 4. При закрытии приложения все данные сохраняются, считывается контрольная сумма jar и эти данные записываются в ресурс (который считывался при первом запуске). Как можно получить контрольную сумму (кажется это так называется) md5 файла? Раз нельзя писать в jar то какие альтернативы могут быть, где хранить пароли более безопасно? -------------------- |
|||
|
||||
| LSD |
|
||||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
На сервере.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||||
|
|||||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
после 4 шага, когда ты допишешь в ресурс контрольную сумму, ты получишь новый Jar -- его контрольная сумма уже будет отличаться от той что записана в ресурс, поскольку ты дописал - значит архив изменился.
|
|||
|
||||
| Hidrag |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: 3 Всего: 25 |
опс... в любом случае тогда не получится в сам архив писать LSD, спасибо за код! Приложение локальное пользовательское, что то типа "дневника для девочек", решение с сервером отпадает... обычный файл легко подменить... Это сообщение отредактировал(а) Hidrag - 16.1.2007, 13:38 -------------------- |
|||
|
||||
| Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 9 Всего: 39 |
Вопрос надо рассматривать более комплексно. Программа вообще рассчитана только на одного пользователя? Какие данные должны быть защишены?
------------------ Вообще проще всего использовать симметричное шифрование с формирование ключа на основе пароля. В начале файла с приватной информацией записывается какойндь фрагмент-идентификатор "успешного" расшифровывания. При логине из пароля формируется ключ, файл расшифровывается, с помощью фрагмента-идентификатора делается вывод о правильности ввода пароля. Это сообщение отредактировал(а) Alexandr87 - 16.1.2007, 13:58 |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Тогда просто формируй ключ шифрования дневника на основе пароля. Как это делается в KeePass: - на основе пароля вычисляется хеш (там используется SHA1) - на основе предыдущего хеша вычисляется его новый хеш - в предыдущий пункт повторяется заданное число раз (это нужно чтобы снизить скорость подбора паролей) - полученный хеш используется как ключ шифрования - правильность декодирования проверяется по контрольным суммам блоков -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |