[英]Getting blank instead of decryption
我试图解密 ID 但一无所获。我使用了 AES-256-CBC openssl 加密方法,它正在加密但未解密。 请帮忙
我得到的输出在这里
encryptId===ZHJpTWNMN3o4SlFRU2JkTDZSeGJQQT09 decryptId===
这是班级
class Cryptor
{
private $encrypt_method = "AES-256-CBC";
//XDT-YUGHH-GYGF-YUTY-GHRGFR
private $secret_key = "12345678901478523693216549875621";
private $iv = "1234567890123456";
function encryptId($id)
{
$options = 0;
$key = hash('sha256', $this->secret_key);
$iv = substr(hash('sha256', $this->iv), $options, 16);
$id = openssl_encrypt($id, $this->encrypt_method, $key,$options, $iv);
$id = base64_encode($id);
return $id;
}
function decryptId($id)
{
$id = base64_decode($id);
$options = 0;
$key = hash('sha256', $this->secret_key);
$iv = substr(hash('sha256', $this->iv), $options, 16);
$id = openssl_decrypt($id, $this->encrypt_method, $key,$options, $iv);
return $id;
}
}
$cat_id = 1;
$crypt = new Cryptor();
echo '<br>';
echo 'encryptId==='.$crypt->encryptId($cat_id);
echo '<br>';
echo 'decryptId==='.$crypt->decryptId($cat_id);
您需要解密加密的结果,而不是$cat_id
。
$cat_id = 1;
$crypt = new Cryptor();
echo '<br>';
$encrypted = $crypt->encryptId($cat_id)
echo 'encryptId==='.$encrypted;
echo '<br>';
echo 'decryptId==='.$crypt->decryptId($encrypted);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.