-5

可能重复:
PHP 中的短“加密/散列”

对,

我需要制作一个ID,例如;100000001、100000002、100000003 使用 PHP(例如 PDKJ23HB43)转换为难以预测的字符串

  • 它必须是字母数字。
  • (如果可能)长度需要为 5-15 个字符。
  • 它需要是可逆的。
  • 它必须是独一无二的。
  • 它不需要是安全的[我没有用它来“加密”任何东西]
  • (如果可能)它不需要数据库来记录映射。
  • 我想做的事有可能吗?

我认为这将类似于 URL 如何变成 TinyURL,但这只是一个模糊的猜测。

我尝试了一些不同的选项,例如 base64,但输出太长了(我知道原因,我只是找不到更好的解决方案,因为这是我第一次需要做这样的事情.

感谢您的帮助,任何人都非常感谢。对不起,如果我问得非常直接,但这是我实现目标的唯一方法。

4

2 回答 2

3

由于您需要这是可逆的,我建议使用mcrypt。不过,这将带来间接费用。

如果您不想要可预测的 ID,那么为什么不更改您的系统以生成随机 ID 的使用uniqid()呢?

于 2012-07-10T15:44:55.270 回答
0

你可以使用这个:

echo base_convert(time(), 10, 34).base_convert(rand(), 10, 34);

如果您想要可预测的(非安全)ID,请在某处存储一个计数并使用

echo base_convert(mycount, 10, 34);
于 2012-07-10T15:44:43.160 回答