php - 为什么 php openssl_encrypt 在 wordpress 模块中返回空字符串
问题描述
我需要加密 wordpress 数据库中的一些数据,所以我需要创建一个模块来做到这一点。到目前为止我还没有使用加密,所以经过研究,我想出了这个方法:
class ad_enc {
public $enc_key;
public function __construct($enc_key){
$this->enc_key = base64_decode($enc_key);
}
function encrypt($input) {
$encryption_key = $this->enc_key;
// Generate an initialization vector
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
$encrypted = openssl_encrypt($input, 'aes-128-cbc', $encryption_key, 0, $iv);
return base64_encode($encrypted . '::' . $iv);
}
function decrypt($input) {
$encryption_key = $this->enc_key;
$data = base64_decode($input);
$data = explode('::', $data);
list($encrypted_data, $iv) = $data;
$decrypted = openssl_decrypt($encrypted_data, 'aes-128-cbc', $encryption_key, 0, $iv);
return $decrypted;
}
}
加密方法有效,我可以使用它并将其插入数据库。但是解密方法什么也不返回。起初我使用的是 aes-256-cbc,所以我切换到 aes-128-cbc。但仍然没有结果。现在,我在这里缺少什么?
谢谢!
解决方案
推荐阅读
- python - 如何让 Selenium 从网页打开的文件资源管理器中选择文件
- reactjs - vue中的相同功能反应错误
- python - 如果python中的逻辑
- python-3.x - 使用 zipfile 模块对 zip 压缩文件执行 os.walk
- c++ - 如何将 wxTreeItemId 绑定为 sqlite3 数据库中的数据类型?
- node.js - Okta 授权服务器使用自定义域问题
- ios - Swift -Force UITextview 仅小写
- php - 如何在 prestashop 1.7 中更改断点
- java - 为什么应用程序语言只能更改一次?
- pandas - 如何在更改原始列名的同时取消堆叠数据框并添加带后缀的新列?