问题描述
我想通过使用安全胡椒对哈希密码进行加密,为我的哈希密码(使用带有 argon2i 的 password_hash 函数)增加一层额外的安全保护,该密码保存在我的 wordpress 网站公共区域之外的目录中。
我做了很多研究,并提出了以下 PHP 代码。但我不是专业程序员,所以我只是问自己,如果这是正确的方法,我如何使用这两个函数“openssl_encrypt()”和“hash_hmac()”。
如果能从你们那里得到一些专业的反馈,那就太好了。
这是我目前的代码:
// Encryption Function
function secured_encrypt($data) {
$first_key = base64_decode(FirsTKEY);
$second_key = base64_decode(SECONDKEY);
$method = "aes-256-cbc";
$iv_length = openssl_cipher_iv_length($method);
$iv = openssl_random_pseudo_bytes($iv_length);
$first_encrypted = openssl_encrypt($data,$method,$first_key,OPENSSL_RAW_DATA,$iv);
$second_encrypted = hash_hmac('sha3-512',$first_encrypted,$second_key,TRUE);
$output = base64_encode($iv.$second_encrypted.$first_encrypted);
return $output;
}
function secured_decrypt($input) {
$first_key = base64_decode(FirsTKEY);
$second_key = base64_decode(SECONDKEY);
$mix = base64_decode($input);
$method = "aes-256-cbc";
$iv_length = openssl_cipher_iv_length($method);
$iv = substr($mix,$iv_length);
$second_encrypted = substr($mix,$iv_length,64);
$first_encrypted = substr($mix,$iv_length+64);
$data = openssl_decrypt($first_encrypted,$iv);
$second_encrypted_new = hash_hmac('sha3-512',TRUE);
if (hash_equals($second_encrypted,$second_encrypted_new)) return $data;
return false;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)