【发布时间】:2012-07-10 03:25:41
【问题描述】:
对,
我需要制作一个 ID,例如;使用 PHP 将 100000001、100000002、100000003 转换为难以预测的字符串,例如 PDKJ23HB43
- 必须是字母数字。
- (如果可能)长度需要为 5-15 个字符。
- 它必须是可逆的。
- 它必须是独一无二的。
- 它不需要是安全的 [我没有用它来“加密”任何东西]
- (如果可能)不需要数据库来记录映射。
- 我正在尝试做的事情可能吗?
我认为这将类似于 URL 变成 TinyURL 的方式,但这只是一个模糊的猜测。
我尝试了一些不同的选项,例如 base64,但输出太长(我知道原因,我只是找不到更好的解决方案,因为这是我第一次需要这样做像这样的。
感谢大家的帮助,非常感谢。对不起,如果我问得非常直接,但这是我实现目标的唯一方法。
【问题讨论】:
-
TinyURL 是随机生成的,然后将 tiny url 和原始 URL 存储在一个 db 中。它不是 URL 的“散列”。
-
所以从 100000001 到 PDKJ23HB43(编码,如果你喜欢)然后从 PDKJ23HB43 回到 100000001(这是原始值)
-
这很有道理 Rocket - 如果不使用数据库进行映射,我想要实现的目标是否可能?
-
SO 处理这件事的方式让我有点难过。 OP 不清楚他的真正需求,他不应该再问同样的问题。但是第一个应该得到更多建设性的 cmets,以便最终确定真正需要什么。