加密和解密IP

时间:2017-05-13 21:42:28

标签: php encryption

我试图在php中创建一个管理页面,我希望管理员看不到真正的IP,只加密。我试图这样做是因为用户说如果管理员可以看到他们的真实IP不好并且可以用它做坏事。 我想只从ip加密一部分或两部分,例如127.0.x.1或127.x.1,并且x是加密的东西。这可能吗?

2 个答案:

答案 0 :(得分:0)

我通过使用crc32和sha512哈希来解决。

我使用此功能向管理员显示IP:

public static function readable_encrypted_ip($ip)
{
    $s = explode('.', $ip);

    $encrypt = hash('crc32', $s[1] . $s[2]);

    $result = $s[0] . "." . $encrypt . "." . $s[3];

    return $result;
}

此功能可在链接中使用:

public static function encrypt_ip($ip)
{
    return hash('sha512', $ip);
}

答案 1 :(得分:-1)

<?  
  $ip = "192.168.11.22";

  $parts = explode(".", $ip);

  $secret1 = 123;
  $secret2 = 321;

  $parts[2] = $parts[2] * $secret1;
  $parts[3] = $parts[3] * $secret2;

  $encrypted = implode(".", $parts);
?>

结果:1​​92.168.1353.7062

在致电/profile/iplog/192.168.1353.2706时,只需进行反向计算。

当然,算法可能比仅仅增加到秘密数字更复杂。

特别注意:这只是一个例子!在实际代码而不是普通代码$parts[2] * $secret1应该使用对称加密算法!