gpt4 book ai didi

java - 具有固定长度的唯一字母数字字符串

转载 作者:行者123 更新时间:2023-12-01 18:39:04 29 4
gpt4 key购买 nike

如何生成固定长度为 8 个字符的唯一字母数字字符串。我想以 Id + 当前时间为基础。
我尝试使用 MD5,但它使字符串太长

谢谢!

最佳答案

问题是 8 个字母数字字符很可能太少而无法保证唯一性......使用这种方法。

你只需要做一些算术。将应用程序每秒可以生成的 id 数量乘以应用程序预期“存活”的预期秒数。现在计算出您需要多少个字母数字字符来对该数字进行编码……这样您的 id 的“时间戳”部分就需要有多大。然后添加字符串的“id”部分的字符。

IMO,最好的方法(如果您必须使用短字符串)是生成部分或完全随机的字符串,然后根据所有先前发布的 id 字符串的(大)表检查它们。如果发生碰撞,则生成另一个字符串,然后重复。

<小时/>

如果您还希望您的 id 难以预测(根据您的评论),那么“随机数”方法是最好的。确保您使用加密质量的 RNG 或 PRNG。基于时间戳的方法的问题在于,生成的 id 更容易预测……或猜测。

关于java - 具有固定长度的唯一字母数字字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20679964/

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