Можно ли зашифровать RSA в Java, но расшифровать в PHP? - PullRequest
1 голос
/ 06 мая 2010

Можно ли зашифровать RSA в J2ME или J2SE и расшифровать в PHP?

Я предполагаю, что RSA является спецификацией и не имеет ничего общего с языками.

Ответы [ 4 ]

4 голосов
/ 06 мая 2010

RSA - это алгоритм; другая вещь, которая вам необходима для взаимодействия, - это спецификация формата сообщения. RFC 3447 определяет один возможный формат сообщения, существуют другие, например, RFC 3110 формат ключа DNS. Также выберите формат сообщения, и проблем не должно быть вообще.

3 голосов
/ 06 мая 2010

одним словом, да.

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

1 голос
/ 06 мая 2010

Если вы шифруете что-то большее, чем ключ, вы можете подумать о шифровании ваших данных с помощью симметричного шифра, а затем о шифровании симметричного ключа с помощью RSA. Стандартный механизм для этого (используемый в S / MIME и т. Д.): CMS (обновление IETF для PKCS # 7). Я не уверен, какая поддержка есть для CMS / PKCS # 7 в PHP, но на стороне java вы можете использовать превосходную криптографическую библиотеку bouncy castle . У вас не будет проблем с взаимодействием, поскольку все структуры данных определены в ASN.1. Не беспокойтесь, если это звучит немного сложно, поскольку эти детали абстрагируются для вас крипто-библиотекой.

0 голосов
/ 06 мая 2010

Да. Я делаю это. В Java любой JCE должен делать. В PHP используйте расширение OpenSSL.

Как уже упоминалось, вы можете зашифровать только до key_length - 11 байт. Например, для 1024-битного ключа вы можете зашифровать только 117 байтов. Если ваши данные могут превысить это, используйте PKCS # 7, который поддерживается расширением OpenSSL.

...