HMAC(SHA-1)是一种哈希计算算法,它也接受一个密钥作为输入值。该算法遵循一定的规则,并保证一定程度的安全性和抵御攻击的弹性。
转向它的实现:是HMAC(SHA-1)标准,它的所有“官方”和正确的实现对于给定的输入消息和密钥产生完全相同的结果?或者算法是否接受可能产生不同结果的不同实现?
答案 0 :(得分:2)
HMAC-SHA1的任何给定实现将产生与输入消息和密钥相同的字节集的相同字节集。
也就是说,各种接口的工作方式和接受这些字节的方式可能存在很多差异。例如,一个库可以将散列输出为十六进制字符串,另一个可以将其输出为字节数组。或者将一个字符串作为输入使用UTF-8编码,而另一个将其作为UTF-16编码。您需要注意相同的字节在不同的库中访问算法以确保获得相同的结果。
此外,虽然从安全角度来看HMAC-SHA1可能还可以,但您应该使用HMAC-SHA256。
答案 1 :(得分:1)