我正在尝试使用 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;
有谁知道我可以如何解密散列字符串?