【问题标题】:Decryption problem using RSA使用 RSA 的解密问题
【发布时间】:2011-09-19 10:32:22
【问题描述】:

我有以下步骤来执行解密

  1. base64 解码响应
  2. 使用 RSA1024 公钥解密前 128 个字节。密钥采用带有 PKCS1 填充的 base64 编码 X509 格式。

我的代码如下所示:

$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 解码,则会收到无效公钥的错误。为了实现上述两个步骤,我遗漏了什么或做错了什么?

【问题讨论】:

  • 是否与创建该 .key 文件有关?

标签: php rsa encryption


【解决方案1】:

查看openssl_pkey_get_public的评论:

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

PKCS1 填充似乎对该函数造成了问题。

【讨论】:

  • 它仅适用于 2048 位。我需要一个 1024 位的解决方案 :(
【解决方案2】:

这实际上是我如何获得响应的问题。通过在 base64 解码之前执行 urldecode,我可以获得正确的结果。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    • 2018-09-10
    • 1970-01-01
    • 2013-03-08
    相关资源
    最近更新 更多