Я сгенерировал пару открытых / закрытых ключей с помощью Crypto ++, и я кодирую пароль на стороне клиента с помощью Crypto ++ (RSAES_OAEP_SHA_Encryptor), а затем кодирую его с помощью base64. Теперь я хочу расшифровать его в PHP-скрипте на стороне сервера (через phpseclib). Закрытый ключ имеет формат "MIIEuwIBADANBgkqhkiG9w0BAQ ...." (без разрывов), затем я форматирую его следующим образом:
static $BEGIN_MARKER = "-----BEGIN RSA PRIVATE KEY-----";
static $END_MARKER = "-----END RSA PRIVATE KEY-----";
$pem = $BEGIN_MARKER . "\n";
$pem .= chunk_split($key, 64, "\n");
$pem .= $END_MARKER . "\n";
перед загрузкой:
$rsa->loadKey($pem,CRYPT_RSA_PRIVATE_FORMAT_PKCS1);
, который, кажется, работает. Но расшифровываем сообщение через:
$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_OAEP);
$plaintext = $rsa->decrypt(base64_decode($input));
возвращает просто пустую строку. Ошибки не выдаются.
У меня есть аналогичный обработчик ASP.Net C #, который может без проблем декодировать сообщение ...
Есть идеи?