【发布时间】:2022-01-12 20:28:19
【问题描述】:
我正在尝试使用 phpseclib 解密字符串。
我的散列字符串是从名为jsencrypt 的javascript 库生成的。加密结果保存在数据库中。
之后我使用 phpseclib3 尝试使用以下方法解密字符串:
<?php
require_once ("vendor/autoload.php"); // i used composer to install phpseclib
use phpseclib3\Crypt\PublicKeyLoader;
use phpseclib3\Crypt\RSA;
$private_key = RSA::loadFormat('PKCS8', file_get_contents('key.pem'), $password = false);
$key = PublicKeyLoader::load($private_key)->withHash('sha512/256')->withMGFHash('sha512/256');
$hashed_string = base64_decode("...");
echo $key->decrypt($hashed_string);
?>
但是当我运行代码时出现以下错误:
Fatal error: Uncaught LengthException: Ciphertext representative too long in /vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA/PrivateKey.php:389
我也尝试过使用openssl_decrypt 解密字符串,但没有成功:
$privateKey = '-----BEGIN RSA PRIVATE KEY-----
PRIVATE KEY HERE...
-----END RSA PRIVATE KEY-----';
$encrypt_method = "AES-256-CBC";
$plain_text = openssl_decrypt('...', $encrypt_method, $privateKey, 0);
echo $plain_text;
有谁知道我可以如何解密散列字符串?
【问题讨论】:
标签: phpseclib jsencrypt phpseclib3