我将使用哈希值保护用户在论坛中输入的数据。我引用了以下内容:
$hex = bin2hex(random_bytes(32));
$split = str_split($hex, 2);
array_unshift($split, '');
$secret = implode('\\x', $split), "\n";
$id = 12345;
$hash = hash_hmac('sha256', $id, $secret);
然后声明此哈希值可以与URL中的ID一起传递,并且可以在不同的PHP脚本中进行验证:
$secret = 'hash';
$id = $_REQUEST["id"]; //in this case the value is 12345
if (hash_equals(hash_hmac('sha256', $id, $secret), $_REQUEST["hash"])) {
//no tampering detected, proceed with other processing
} else {
//tampering of data detected
}
但是,他们如何将$secret
变量传递给不同的PHP脚本?我假设将它添加到URL会完全失去保护的目的。