java & phpseclib, RSA и OAEP? - PullRequest
       17

java & phpseclib, RSA и OAEP?

0 голосов
/ 23 сентября 2011

Я шифрую в Java, используя Cipher.getInstance("RSA/ECB/OAEPWITHSHA-512ANDMGF1PADDING") и setEncryptionMode(CRYPT_RSA_ENCRYPTION_OAEP) в phpseclib, но phpseclib неправильно расшифровывает данные.

Он отлично работал, когда я использовал RSA/ECB/PKCS1Padding в Java и setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1) в phpseclib.

Вот поддерживаемые шифры в Java: http://download.oracle.com/javase/6/docs/technotes/guides/security/SunProviders.html#SunJCEProvider

Нетиз этих шифров, совместимых с реализацией OAEP phpseclib?

Ответы [ 2 ]

2 голосов
/ 09 декабря 2011

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

Для безопасного использования OAEP необходимо использовать> = 2048-битные ключи RSA.

Также убедитесь, что вы запустили

$rsa->setHash('sha512');
$rsa->setMGFHash('sha512');

перед setEncryptionMode () на стороне PHP.

edit : кажется, что 1024 клавиши не будут работать правильно даже с sha256, поэтому я изменил свой ответ, чтобы включить только безопасный маршрут 2048+ битов.

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

Вам, вероятно, придется сделать $ rsa-> setHash ('sha512'); По умолчанию используется sha1.

...