【问题标题】:Displaying hashed content on my website在我的网站上显示散列内容
【发布时间】:2016-11-18 00:00:33
【问题描述】:

我有一个当前跟踪用户 IP 和其他不同唯一标识符的系统。

在某些页面上,我想显示多个 IP,其中大部分属于其他用户(您只需要相信我,这是必要的,而不是出于恶意,恰恰相反)。出于显而易见的原因,我不想到处显示纯文本 IP。

所以我的问题是:使用 sha256 之类的东西将所述 IP 保存为散列内容是否足够安全以显示给其他用户?

我曾考虑在散列之前将更复杂的字符串连接到 IP 的开头/结尾,从而可能使其更复杂?我几乎可以肯定这是非常糟糕的做法,但想法呢?

我总是可以在数据库中创建第二个表,将所有 IP 链接到一个完全随机的唯一标识符,但是,我宁愿避免这种情况,并且仅在被认为有点安全时才使用散列 IP。

【问题讨论】:

  • 如果你散列它们,你永远不会知道原来的 IP 是什么。哈希是不可逆的(不应该如此)
  • 哈希看起来不像 ip,因此显示它不会像 ip
  • @RiggsFolly 我不需要知道它最初是什么。仅将其与用户输入进行比较。虽然它们可能看起来不像 IP,但它们会知道这是一个散列 IP。
  • 同一范围内的IP无法比较,你在乎吗?
  • 好吧,您可以将输入 ip 与散列 ip 进行比较,但在这种情况下,为什么不直接返回 yes it isno it is not

标签: php hash cryptography sha256


【解决方案1】:
  1. 在不使用盐的情况下对 IP 进行散列将使其相当容易逆转,因为暴力破解的可能性恰好有 2^32 [~40 亿] 种,而且现在可以以惊人的速度完成。

  2. 使用全局盐对 IP 进行散列可能只会使它们稍微安全一些,因为人们需要做的就是找到自己的 IP 散列并蛮力 来确定盐,然后你又回到了 1。

  3. 使用 per-IP salt 对 IP 进行散列是相当安全的地方,但此时您已经在为 per-ip 生成随机值,因此您还是可以使用随机 ID。

【讨论】:

  • 嗯好的,谢谢你的信息。我可能最终会为所有这些使用随机生成的字符串。非常感谢。
猜你喜欢
  • 2021-10-21
  • 1970-01-01
  • 2023-02-11
  • 1970-01-01
  • 2016-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-07
相关资源
最近更新 更多