2011-08-16 56 views
1

如何为HMAC算法生成密钥,因为我必须将其用于其他客户端的数据验证?HMAC算法的密钥

在此先感谢。

+3

' SHA512'是一种哈希算法,根本不需要(秘密)密钥。你在说什么像HMAC(基于散列的消息认证码),例如http://www.php.net/manual/en/function.hash-hmac.php? –

+1

我在谈论HMAC。 – cooldude

回答

2

HMAC密钥必须在服务器和客户端之间预先共享(两者在交换消息之前都必须知道密钥)。

您可以通过从/ dev /随机读一些字节产生任何你想要的关键,例如:

$fd = fopen('/dev/random', 'r'); 
$bytes = fread($fd, '64); 

然后你就可以使用hash_hmac计算HMAC:

$hash = hash_hmac('sha1', $data, $key);