![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Swatch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 453 Регистрация: 2.7.2007 Репутация: нет Всего: 1 |
Добрый день.
Нужно сделать примерно следующее. Пользователю дается программка. Если он хочет работать с полным функционалом, то ему нужен ключ. в ключе должна быть записана дата, когда он зарегистрировал программу, и срок работы. По сути надо разобраться, как сделать регистрационный ключ, чтобы там в зашифрованном виде хранилась инфа о сроке дейстия программы с даты, когда она была зарегистрирована. Подскажите, пожалуйста, как это сделать? может есть какие-то компоненты, которые позволяют шифровать и дешифровать даннные? |
|||
|
||||
| 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. |
|||
|
||||
| Swatch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 453 Регистрация: 2.7.2007 Репутация: нет Всего: 1 |
Это я понимаю... Спасибо. Но я слабо представляю, как это сделать.
Мне сказали, создать класс, в котором будет открытый ключ. Потом этим открытым ключом шифровать дату и срок действия. полученный зашифрованный файл отдавать юзеру. Приветдите, пожалуйста, пример класса, в котором будет открытый ключ, реализующий без разницы, какой алгоритм. и, если можно, пример, как потом это откр. ключ использовать. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
В той ссылке, что я дал, все есть. И как сгенерировать пару ключей, и как их сохранить. Ты можешь или сохранить файл с ключем в jar с твоей программой, или сгенерировать класс, где жестко закодировать ключ.
-------------------- 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. |
|||
|
||||
| Swatch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 453 Регистрация: 2.7.2007 Репутация: нет Всего: 1 |
Я, конечно, понимаю, что я туплю, но по ссылке, которую Вы дали, я вообще ничего понять не могу.
1. зашифровать текущую дату и срок действия. (это будет лиц. ключ, который после ввода юзером, будет храниться в базе) 2. при открытии программы расшифровывать данные (как считать из базы, я знаю, пусть это будет какая-то строка). Я просто в упор не понимаю, где передаются данные для шифрования, чем они шифрутся и куда сохраняются... и как их потом расшифровать?! |
|||
|
||||
| Swatch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 453 Регистрация: 2.7.2007 Репутация: нет Всего: 1 |
Дело в том, что мне нужен только открытый ключ... просто им зашифровать и отдать юзеру... что-то такое надо:
какие параметры передаются вместо знаков ???? подскажите, пожалуйста. я так понимаю, что вот здесь byte [] raw будут зашифрованные данные... как их потом в String можно будет перевести, не подскадите? |
|||
|
||||
| Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 9 Всего: 39 |
Для вывода байтовых массивов у меня есть небольшой утил пак, который конвертит их из/в строку в хексе. На самом деле, вариант, который предложил LSD более правильный. Это сообщение отредактировал(а) Alexandr87 - 31.7.2007, 08:22 |
|||
|
||||
| Swatch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 453 Регистрация: 2.7.2007 Репутация: нет Всего: 1 |
Может он и правильный, я не спорю. Просто моему ПМ нужно именно так. Большое спасибо за помощь LSD и Alexandr87!!!
|
|||
|
||||
| Swatch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 453 Регистрация: 2.7.2007 Репутация: нет Всего: 1 |
Еще один маааленький вопросик... я так поняла, byte key[] - это и есть мой откр. ключ, а byte enc[] - это зашифрованные мои данные. А как теперь использовать именно этот ключ, чтобы данные расшифровать?
|
|||
|
||||
| Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 9 Всего: 39 |
понятие открытый ключ существует только в контексте асиммитричного шифрования, и обозначает такую ключевую информацию которую можно открыто распрострнять. В данном случае - это симметричный алгоритм шифрование - и подобные ключи называются либо секретными, либо сессионными. Я это все к чему, может быть нужно именно не так? Это сообщение отредактировал(а) Alexandr87 - 31.7.2007, 09:16 |
|||
|
||||
| Swatch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 453 Регистрация: 2.7.2007 Репутация: нет Всего: 1 |
Нет, ему именно так нужно... просто, видимо, у него тоже с понятиями не очень хорошо, как и у меня... Он сначала сказал, открытый ключ... я поискала... везде открытый идет вместе с закрытым. Донесла эту инфу до него. Он поискал вместе со мной, т.к. я тож до конца не понимала, что и как он хочет. Нашел эссе по курсу "Обзор Java Crypto API". там был пункт симметричные и несимметричные шифры. только тогда я поняла, что он хочет. я это уже находила... и это именно то, что Вы написали. просто понятия неправильные.
|
|||
|
||||
| Swatch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 453 Регистрация: 2.7.2007 Репутация: нет Всего: 1 |
Написала вот так. Мне нужно было 2 отдельных метода:
В args передается строка с датой ну и т.д. Подскажите, плиз, что не так? падает на строке byte mess[] = c2.doFinal(lic_key.getBytes()); и все. Пишет javax.crypto.BadPaddingException: Given final block not properly padded. |
|||
|
||||
| Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 9 Всего: 39 |
Swatch, проблема в том, что вы передаете во все эти методы не байтовые массивы, а хексовое представление их (bArrayToHex). Нужно перед вызвовом процедуры расшифровки конвертнуть их назад в байтовые массивы. Предугадывая следующий пост, выложим сразу:
|
|||
|
||||
| Swatch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 453 Регистрация: 2.7.2007 Репутация: нет Всего: 1 |
Разобралась в чем дело. теперь встал вопрос о написании метода подобного Вашему bArrayToHex. Только из строки теперь надо получить массив байт... Можете, пожалуйста, объяснить, что там у Вас делается...
Добавлено через 6 минут и 50 секунд Да уж, написала пост, не обновив страничку... Спасибо огромное, все делается!!! Ребята, Вы просто супер!!! Спасибо-спасибо!!! |
|||
|
||||
![]()
|
| Правила форума "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. |