簡體   English   中英

PHP openssl_public_encrypt“密鑰參數不是有效密鑰”

[英]PHP openssl_public_encrypt “key parameter is not a valid key”

我將公用密鑰保存在名為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]:密鑰參數不是有效的公共密鑰……

我的代碼中有什么地方做錯了嗎? 請幫助!

您可能需要在密鑰Blob之前和之后添加-----BEGIN RSA PUBLIC KEY----------END RSA PUBLIC KEY----- 您可能還需要使用chunk_split,因為OpenSSL非常挑剔

不過,實際上,我建議您使用phpseclib(純PHP RSA實現) 除了其他功能外,它還具有更多的通用鍵處理功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM