Проблема расшифровки с использованием RSA - PullRequest
1 голос
/ 19 сентября 2011

У меня есть следующие шаги для расшифровки

  1. base64 декодирует ответ
  2. Расшифруйте первые 128 байтов с помощью открытого ключа RSA1024. Ключ в формате X649 в кодировке base64 с отступом PKCS1.

Мой код выглядит так:

$decodedString = $this->base64UrlDecode($string); //does proper url decoding                
$publicKey = file_get_contents("public.key",true); 
$pub_key = openssl_get_publickey($publicKey);   
openssl_public_decrypt($decodedString,$decrypted,$pub_key,OPENSSL_PKCS1_PADDING);
var_dump($decrypted);

Я не могу получить что-либо в переменной $ decrypted. Если я пытаюсь декодировать открытый ключ base64 перед его использованием, я получаю сообщение об ошибке неверного открытого ключа. Что я пропускаю или делаю не так, чтобы выполнить указанные 2 шага?

Ответы [ 2 ]

1 голос
/ 19 сентября 2011

См. Этот комментарий для openssl_pkey_get_public:

http://www.php.net/manual/en/function.openssl-pkey-get-public.php#101513

Заполнение PKCS1 создает проблему для этой функции, кажется.

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

Это была проблема с тем, как я получал ответ.Делая urldecode до base64 декодирования, я могу получить правильные результаты.

$decodedString = $this->base64UrlDecode(urldecode($string));
...