编码/模糊/哈希IP地址

时间:2014-12-15 11:20:14

标签: php hash

我为数据库中的每个MD5 Hash生成一个IPHash将在网站上显示,而IP则不会显示。

我现在生成这样的Hash

$ip   = '1.2.3.4';
$salt = '1024 random characters';
$hash = md5(sha1($salt).md5($ip).sha1($salt));

如果您没有盐,我认为以这种方式将Hash解码回IP可能更难或不可能。我做得对,我是部分还是完全错了?

Hash用于获取文件名中包含Hash的图像。由于此图像在网站上可见,我不希望其他人知道图像(哈希)属于哪个IP 。我不需要将其反转为原始IP。我最终需要一个MD5哈希,因为我正在谈论的API需要MD5。

更新: VolkerK提到了php的hash_hmac功能。我阅读了手册,现在我在md5()内使用了这个:$hash = md5(hash_hmac('sha1', $ip, $salt));我想这是更好的方法吗?

1 个答案:

答案 0 :(得分:1)

你实际上想要实现的问题仍然是我的通用答案,不是要推出自己的哈希/身份验证/ ...方案,而是使用经过验证的机制(即已经分析过,它的界限/限制是提供文件和最佳实践指南。) 在这种情况下,最可能的候选人是Hash-based message authentication code (HMAC),例如可以获得。通过php的hash extension