Facebook app secret是一个32个字符的字符串(0-9,a-f),因此它代表一个128位字节数组。Facebook uses this as the key to generate signed request using HMAC-SHA256。这是正确的用法吗?我认为HMAC-SHA256应该使用256位密钥。
发布于 2012-08-31 08:52:35
页面上说256位的是由一个有效载荷(脸书正在签署的)+你的128位派生而来的。
所以,是的,这听起来像是正确的用法。
秘密的16字节(32个字符)实际上不是密钥,因为它用于加密和解密某些东西。相反,它是一小部分数据(一种盐),用于改变数字签名的结果,通过非常轻微地更改输入,以便只有知道确切秘密和确切有效负载的人才能创建签名。
发布于 2012-08-31 09:04:51
如果密钥的长度大于散列的内部块大小,则HMAC获取散列(密钥)并将其用作密钥。因此,大于散列的内部块大小的密钥并不比相同大小的密钥提供更好的安全性。根据HMAC规范,较短的密钥被零填充以等于散列的内部块大小。
不可能将128位密钥与HMAC-SHA-256一起使用。
https://stackoverflow.com/questions/12207343
复制相似问题