RSA между стороной сервера php и клиентом java (Android). - PullRequest
0 голосов
/ 29 октября 2011

Я разрабатываю решение, состоящее из двух частей: первая часть - это шифрование SMS, которое будет основано на Android.в то время как вторая часть должна заботиться о выпуске и обмене открытыми / закрытыми ключами.

Все было хорошо, пока я не столкнулся с этой проблемой: если вы используете классы криптографии Java, которые предоставляют мод и exp ключа для генерации объекта ключа.В то время как все, что я получаю от сервера, который генерирует ключи, является предварительно вычисленным открытым ключом.Итак, я не могу получить мод или exp с сервера, где я использую phpseclib.

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

1) если есть способ получить доступ к mod & exp из phpseclib, проблема будет решена с меньшим количеством времени, верно?

2) замена собственного класса криптографии в java третьимодин из таких параметров - это bouncy castle, который принимает открытый ключ.

3) изменение языка на стороне сервера на JSP.тогда я мог бы использовать одни и те же классы с двух сторон.

Какое из этих решений будет проще всего принять? ..

Большое спасибо.

Ответы [ 2 ]

1 голос
/ 07 ноября 2011

я ответил на свой вопрос для дальнейшего использования.

1) связавшись с автором phpseclib, он сказал мне

В последней версии SVN добавлена ​​поддержка следующего: CRYPT_RSA_PRIVATE_FORMAT_XML CRYPT_RSA_PUBLIC_FORMAT_XML CRYPT_RSA_PRIV * * * 100 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *который должен решить любую проблему, как у меня.

2) Для меня я преодолел ситуацию (которая произошла до ответа выше), сгенерировав Открытый и Закрытый ключи из собственной библиотеки Java RSA и сохранив их в сети.Сервер базы данных работает с codeigniter. Вы можете создать для себя простой API. Сделайте android (java) URLConnection и передайте URL со значениями, которые вы хотите сохранить, а затем проанализируйте его с другой стороны.http://localhost/myApp/index.php/AndroidisTalking/registerKeys/VAR1/VAR2 Примечание VAR1, VAR2 - сгенерированные ключи.

Надеюсь, что это поможет. И спасибо Ханно Бендеру за большую помощь.

0 голосов
/ 29 октября 2011

Хорошо, только что взглянул на http://phpseclib.sourceforge.net/documentation/misc_crypt.html#misc_crypt_rsa_format.

Простой способ - использовать CRYPT_RSA_PRIVATE_FORMAT_XML, выполняя какой-то анализ XML на Android.

Редактировать: забыть, что:)

Другой формат - CRYPT_RSA_PUBLIC_FORMAT_RAW - хранится в виде массива с двумя индексами - один для модуля и один для показателя степени.

и

getPublicKey () имеет необязательный параметр - $ type -, который устанавливает формат.

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

...