【问题标题】:invalid private key on decrypt data in PHPPHP中解密数据的私钥无效
【发布时间】:2015-03-09 06:10:49
【问题描述】:

我正在尝试解密 PHP 中的私钥数据。但我的回复显示私钥无效。我尝试了很多其他选择,但没有帮助。首先,我至少需要一个最简单的例子来说明如何在 PHP 中解密数据。我的代码:

$privateKey = openssl_get_privatekey(base64_encode('-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQCK0ddPrH6Sr329AEgS1MzXrnkKliLOzSOLtVIlzpzhuaRznPbM
6u1QJSNiNspDyEe66fv6vSlceWwDgAb99YiYnpis6DUHsbrlRbvC25TEsGbaaI95
v+Y/vizUMPVgxJT73JsXZOaH6RfOGvXZFec76knveTa5X9bTT+AAm+W1EwIDAQAB
AoGBAIMTWkM/s4/bplUkg+lMB1MLyfymAJ3V8t9CyRsruNQmDtKffiXFGWjYeE2P
QHK6FIi30JZTsE9B0yyG4ZNAGMXmLws2eqCUu3j+zfTeQ6Ir/fmndXsZNFoJyPBn
Ofe3YQ2O+cHd0g5w9oVBLEej+vI5m29+Vd3KStA78jhOHoNxAkEAyB+8hN4XQTD2
nssiImpprLZco/fMlTcDFP+tDDaKskvZpxgmG1KDSn2wDAmkk0avS07Z4ht97Yog
FK4X4jN7GQJBALGUQgh+CqiDBk1SJ3e8tidJlvXWpJrA1Jtt523pERE+flwnVYUN
N8TcZAyCNEkpg+1Mmlvr3hQYF5p77k8TIwsCQQCtHWcCuOv85NIyAx6ADvVjBk2V
OaKr4W61F4cmbXgFTD/3n5g3QmV4ZsmHYEARdq/kwU0Rnx6MAVRHD2Jxtn7hAkEA
klGG11iDj7XmS2+V9aMYs+Z+7LGfj6Ozix5Twsx3s626kFQYszjg6uRty6C9VEtQ
2QZ1aag/pG71g+T5x04NYQJAXqOsA45bHcW0PfRKEXdiQoaSF5E//B5DyqQxPUfb
r7AxSx/r9ch5TCnhn4JffhE326QTYF65QgxAo61rFrsnrA==
-----END RSA PRIVATE KEY-----'));

$source='BcIBgKb3NjvQ6YsmzpE5vTZnwGJnAyLZGDFei254aHRjvOyFgVakNj7R9RAOnKaLUWaw6cRGRyGWOQuGU3wZHBIO36vpQvEh+rLZszIKO2zb5NSKXYnQIzt4LJn2aEK3fXwk7ADXSxAeBC+pB+59ADxBvBbehmBK7t2W7pPPCro=';

openssl_private_decrypt(base64_decode($source),$newsource,$privateKey);
echo "String decrypt : $newsource";

【问题讨论】:

  • 不需要包含 BEGIN 和 END 行。
  • 这条线我也试过了
  • 尝试从第一行删除 base64_encode 函数。 openssl_get_privatekey 需要 PEM 格式的私钥作为第一个参数,并且您已经拥有它。没有理由再进行 base64 操作。
  • @kbarborak 非常感谢,你帮了我很多
  • 如果这个问题现在已经回答了,请将评论的要点作为答案发布,或者删除问题。

标签: php encryption openssl rsa


【解决方案1】:

您需要删除第一行中的 base64_encode 函数。

$privateKey = openssl_get_privatekey ('----- BEGIN RSA PRIVATE KEY -----
...
...
...
----- END RSA PRIVATE KEY ----- ');

【讨论】:

    猜你喜欢
    • 2020-01-24
    • 2014-10-03
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 2020-08-26
    • 2016-07-17
    • 1970-01-01
    相关资源
    最近更新 更多