可能重复:
Short';加密/散列';在PHP 中
对,
我需要做一个身份证;100000001、100000002、100000003使用PHP(如PDKJ23HB43 )转换为不太可预测的字符串
- 它需要是字母数字
- (如果可能)长度需要为5-15个字符
- 它需要是可逆的
- 它必须是独一无二的
- 它不需要安全[我不会用它来"加密"任何东西]
- (如果可能)它不需要数据库来记录映射
- 我想做的事情有可能吗
我认为这将类似于URL如何变成TinyURL,但这只是一个模糊的猜测。
我尝试了一些不同的选项,如base64,但输出太长(我知道原因,我只是找不到更好的解决方案,因为这是我第一次需要做这样的事情。
谢谢你们的帮助,任何人都非常感激。如果我问得很直接,很抱歉,但这是我实现目标的唯一途径。
由于您需要这是可逆的,我建议使用mcrypt。不过,这将带来间接费用。
如果你不想要可预测的ID,那么为什么不改变你的系统,使用uniqid()
生成随机ID呢?
您可以使用这个:
echo base_convert(time(), 10, 34).base_convert(rand(), 10, 34);
如果你想要可预测的(非安全的)id,只需在某个地方存储一个计数并使用
echo base_convert(mycount, 10, 34);