gpt4 book ai didi

php - PHP 中的双向加密来混淆 ID?

转载 作者:行者123 更新时间:2023-12-02 04:16:40 27 4
gpt4 key购买 nike

正在构建一个 PHP 网站,其 URL 结构如下:

http://www.domain.com/list/X/

X可以是 1 到 ~50m 之间的任何整数(我们拥有的记录数)。

由于网站的性质,内部需要让人们很难通过增加 URL 来自动提取数据,如下所示:

http://www.domain.com/list/1/
http://www.domain.com/list/2/
http://www.domain.com/list/3/
...
http://www.domain.com/list/50000000/

所以我正在考虑替换 X使用某种随机字符串,然后在后台进行内部查找以检索记录整数 ID。

我最初想做的是构建一个包含 50m 行的表,将整数映射到随机的 12 个字符的字符串。

但是为了让事情变得更有效率,我想到将整数附加到私钥,对其进行加密并使用加密的字符串代替 X 。然后我只需要解密字符串即可检索整数。

任何人都可以推荐一种在 PHP 中执行此操作的方法吗:

1) 快
2) 生成 URL 友好的字符
3) 结果是一个短字符串

我不关心无懈可击的安全性(这只是为了阻止爱好者)。

谢谢!

最佳答案

不要把事情搞得太复杂。您当前的 ID 是可猜测的,请通过将其替换为不可猜测 id 来解决这个问题。通过生成真正的随机数,您可以获得不可猜测的 id;不混淆现有的非随机数。 UUIDs非常适合此目的。只需在记录表中添加一个新列来存储这样的 UUID;也许甚至可以考虑直接用 UUID 替换整数 ID。

PECL 提供 uuid package ,但还有其他纯 PHP 实现。
您也可以简单地从 openssl_random_pseudo_bytes 生成一个随机值。和 bin2hexbase64_encode 它。

关于php - PHP 中的双向加密来混淆 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33255853/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com