![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Fame_biz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 1.2.2007 Репутация: нет Всего: нет |
Есть проблема как такой код переписать на Java. Помогите переписать данный код.
Это сообщение отредактировал(а) Fame_biz - 18.4.2007, 17:50 |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 8 Всего: 118 |
Эх, кабы знать PHP - наверно помог бы. Но я ничего не понял из вышеприведенного :(
|
|||
|
||||
Fame_biz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 1.2.2007 Репутация: нет Всего: нет |
Данным PHP кодом просто шифруеться закритим ключем SSL текстовое значение а потом шифруеться через Base64.
Это сообщение отредактировал(а) Fame_biz - 18.4.2007, 17:49 |
|||
|
||||
Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 6 Всего: 39 |
pem файл 1?
Есть два выхода: можно, либо найти JCE провайдер, который предоставляет такой PEM KeyStore , либо конвертнуть в формат джавовского keystore JKS. Линк по конвертации есть здесь. http://mark.foster.cc/kb/openssl-keytool.html Либо, использовать другую библиотеку (OpenSSL врапер) http://www.warnertechnology.com/Computers/...vaOpenSSL.shtml Это сообщение отредактировал(а) Alexandr87 - 19.4.2007, 06:23 |
|||
|
||||
Fame_biz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 1.2.2007 Репутация: нет Всего: нет |
Да например я сертифекат положу в KeyStore. А как потом подписать текст данным ключем ?
|
|||
|
||||
Alexandr87 |
|
||||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 6 Всего: 39 |
Думаю стоит внести ясность. Сертификат это не ключ. Сертификат лишь подтверждает принадлежность открытого ключа определенному человеку. Таким образом сертификат таки содержит ключ, но открытый. А подпись вырабатывает с помощью закрытого (прайвит) ключа. Вывод: одного сертификата не достаточно для выработки подписи - нужен прайвит ключ, и вам придется переносить в JKS еще и закрытый ключ. В ссылке, что я давал выше, была информация по конвертации openssl ного хранилища (pem) в JKS, вместе с сертификатами и ключами. В итоге, когда у вас есть, хранилище, доступ к которому вы можете получить через объект KeyStore ( в моем случае это SUNовский JKS), вы можете воспользовать следующим кодом.
|
||||
|
|||||
Fame_biz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 1.2.2007 Репутация: нет Всего: нет |
Да спасибо разобрался. Но есть также вопросик. А можно ли каким небуть способом напрямую загружать сертификат не используя предварительную загрузу эго в JKS.
|
|||
|
||||
Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 6 Всего: 39 |
Вам нужнен сертификат или все таки прайвит ключ для подписи? Выложите пример ваших pem файлов дабы посмотреть как у вас хранится прайвит кей. Php я знаю плохо, но вроде прайвит ключи у вас хранятся в открытом виде, так, что с написанием кода импорта ключа проблем возникнуть не должно. Завтра вечером должен быть кусок свободного времени - посмотрю. Это сообщение отредактировал(а) Alexandr87 - 23.4.2007, 19:32 |
|||
|
||||
Fame_biz |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 1.2.2007 Репутация: нет Всего: нет |
Вот сам приватный ключ. Если можно то по порядку розяснить как его нужно будет добавить в KeyStore.
А вот сам сертифекат
Пробивал так
Это сообщение отредактировал(а) Fame_biz - 24.4.2007, 01:42 |
||||||
|
|||||||
Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 6 Всего: 39 |
Всеж стоило файлик с прайвит кеем выложить полностью, чтоб я мог проверить. (все равно использовать его дальше я вам очень не рекомендую)
Ваш код рассчитан на то, что информация в файлах закодирована в der формате, в то время, как у вас PEM файлы. Для того, чтобы перевести из PEM в DER, нужно убрать "рамки", и декодировать из BASE64. Вот примерно, как это должно выглядеть
ЗЫ: для использования ключа, его не обязательно помещать в KeyStore. KeyStore - это всего лишь хранилище ключей, сертификатов. Это сообщение отредактировал(а) Alexandr87 - 24.4.2007, 16:30 |
|||
|
||||
Fame_biz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 1.2.2007 Репутация: нет Всего: нет |
Именно с public все нормально проходит а вот только с privat проблемы.
Попробывал воспользоваться твоим примером получил такую щтуку на методе importRSAPrivateKey
Сам ключ получил так openssl genrsa -out PRIVAT.pem 1024 а потом команда для получения паблик ключа openssl req -new -key PRIVAT.pem -x509 -days 365 -out PUBLIC.crt Это сообщение отредактировал(а) Fame_biz - 25.4.2007, 12:24 |
|||
|
||||
Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 6 Всего: 39 |
Fame_biz, значит не pkcs8 формат, поэтому я и говорил, что лучше было выложить весь ключ, или сказать, как генерировали.
Буду смотреть, самому интересно. |
|||
|
||||
Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 6 Всего: 39 |
Вот тут есть большая крипто бибилиотека http://www.bouncycastle.org/, скачивал ее не так давно, но так и не посмотрел. Вот терь взглянул.
Есть класс для чтения объектов из openssl pem файла. Пользовать так:
А дальше, как в примерах выше. Надо будет всетаки посмотреть этот формат. Предпологал, что openssl должен использовать pkcs8, как общепринятый стандарт для хранения private ключей. PS А библиотека на самом деле хорошая, нашел, когда срочно нужна была реализация ГОСТ подписи. Это сообщение отредактировал(а) Alexandr87 - 26.4.2007, 20:44 |
|||
|
||||
Fame_biz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 1.2.2007 Репутация: нет Всего: нет |
Большое спасибо за помощ Alexandr87.
Это сообщение отредактировал(а) Fame_biz - 28.4.2007, 14:44 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |