【问题标题】:PHP: Better to - Create hash table lookups, or encrypt/decrypt hash keys?PHP:更好地 - 创建哈希表查找,或加密/解密哈希键?
【发布时间】:2012-11-13 16:06:24
【问题描述】:

我正在构建一个使用两个主要元素的应用程序。

first 是一个段,它生成一个带有某个哈希键(例如 5c2a4b5773500a0417f6e6d8299776d9cba7ead9)的条目并将其插入到表中。

second 是一个被共享的 url(例如http://myapp.com/a/5c2a4b5773500a0417f6e6d8299776d9cba7ead9),然后返回到服务器,对上述表进行查找,并执行某种预定义的操作,以及记录传入流量。

这是我的问题:

使用 40 个字符长度的字符串键进行查找似乎非常耗费资源。 加密数据库中行的 ID 是否更好,从而创建一个密钥,然后 解密 'hash'-key 使用 PHP em> 并在数据库返回服务器后对其进行单行查找? (永远不需要将哈希/加密密钥存储在数据库中)

陷阱在哪里?我是否使用了正确的术语?有没有更好的方法来做到这一点?

【问题讨论】:

  • 使用 40 个字符(在索引列上)进行查找不会占用大量资源。
  • 我不知道你要解决的问题,你能给我们更具体的吗?
  • 对 ID (int) 进行数据库查找,必须比字符串查找快。在看到索引表列是有效的之后,我是创建一个哈希,还是我加密需要稍后使用 PHP 解密它的行 ID。此外,散列密钥是一种方式,加密是可逆的......所以也许在路上我可能希望密钥具有加密值......?
  • 你让这变得比它需要的复杂得多。停止使用 PHP 来处理繁重的数据!这正是数据库的用途!
  • 可能他正在尝试开发一个简单的用户注册或密码重置,但他不会告诉我们,因为这是最高机密。

标签: php mysql performance encryption hash


【解决方案1】:

共识:

  • 使用数据库中索引表列上的键进行查找是 尽管有 40 个字符长,但已经非常有效。

  • 避免 PHP 执行任何不必要的繁重工作

  • 尽量不要对 SO.com 用户保密

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-29
    • 1970-01-01
    • 2013-07-12
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 1970-01-01
    相关资源
    最近更新 更多