【问题标题】:PHP openssl_public_encrypt “key parameter is not a valid key”PHP openssl_public_encrypt “密钥参数不是有效密钥”
【发布时间】:2013-10-15 03:32:16
【问题描述】:

我的公钥在一个名为 publickey.key 的文件中 那个文件的内容是这样的,

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtixUGzGpLXgZ7AV1HfmIHV/FEF+fww77FekRc2oLhUOd4HitwCPo76fjtdsQBEt8w9HZ3CXVphaAU2BA6MEZJ3ShVMsdAXb2ZA1C+lu7k1GV9M/BhucTg35HujSK647Sc5MwVLwFsN80dAnGsZF8gwb2TNUzXHwzbAb30T01zuqf8RCM75OwKZFYqzu7FOVrtk/w9mh92MOXG0l7WSqNIctu8Kxka/tEJJIA5nqMGNMocjwprXy66NS7FFy1GY+NnxfFLtODqq0tllc50UCDsnqSvNmj2wcnAcsCzNOoxPPgp7t8S+sQvOzgc5W3CDjIsYEiGD+vzSVNkGiRou577wIDAQAB

/////// 在我的 .php 文件中,我按照以下步骤使用此公钥加密我的字符串

$fp=fopen ("publickey.key","r");
    $publicKey=fread($fp,8192);
    fclose($fp);
$encrypted = '';
$secret='what i want to encrypt';

    if (!openssl_public_encrypt($secret, $encrypted, $publicKey)) 
    {   
        die('Failed to encrypt data');
    }

但我收到此错误。

警告:openssl_public_encrypt() [function.openssl-public-encrypt]: key parameter is not a valid public key in......

我的代码中有什么做错了吗? 请帮忙!

【问题讨论】:

    标签: php openssl public-key


    【解决方案1】:

    您可能需要在密钥 blob 前后添加 -----BEGIN RSA PUBLIC KEY----------END RSA PUBLIC KEY-----。您可能还需要使用 chunk_split,因为 OpenSSL is pretty picky

    不过,我确实建议使用phpseclib, a pure PHP RSA implementation。除其他外,它还具有更多功能的密钥处理。

    【讨论】:

      猜你喜欢
      • 2012-04-10
      • 2013-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多