【发布时间】: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