繁体   English   中英

获取空白而不是解密

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM