如何解决结合“openssl_encrypt”和“hash_hmac”来加密数据的最安全方法是什么?
我想通过使用安全胡椒对哈希密码进行加密,为我的哈希密码(使用带有 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 举报,一经查实,本站将立刻删除。