生成唯一(可能自动递增)id 的算法

发布于 2024-08-19 23:34:36 字数 424 浏览 9 评论 0原文

我需要为我的应用程序生成唯一的 ID,并且我正在寻找合适的算法。我更喜欢这样的 --

YYYY + MM + DD + HH + MM + SS + <随机盐> + <从前面的值派生出来的东西>

F.ex。 -

20100128184544ewbhk4h3b45fdg544

我正在考虑使用 SHA-256 或其他东西,但生成的字符串不应该太长。我可以使用 UUID 但同样,它们太长并且保证它们仅在一台机器上是唯一的。

我欢迎建议、想法。我的编程语言是Java。

编辑: ID 不需要加密安全。我正在研究更简单的哈希算法,例如 Dan Bernstein 等的算法。

I need to generate unique ids for my application and I am looking for suitable algorithms. I would prefer something like this --

YYYY + MM + DD + HH + MM + SS + <random salt> + <something derived from the preceding values>

F.ex. -

20100128184544ewbhk4h3b45fdg544

I was thinking about using SHA-256 or something but the resultant string should not be too long. I could use UUID but again, they are too long and they are guaranteed to be unique on only one machine.

I would welcome suggestions, ideas. My programming language is Java.

Edit: The ids need not be cryptographically secure. I am looking at simpler hashing algos like the one by Dan Bernstein, etc.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

枫以 2024-08-26 23:34:36

您可以使用该 SHA-256,然后仅从结果中取出前 10 个字节(或者您喜欢的任意数量,根据您的喜好平衡长度和唯一性)。

You could use that SHA-256 and then only take the first 10 bytes from the result (or however many you like, balancing length and uniqueness however you like).

不再见 2024-08-26 23:34:36

所以我终于解决了这个问题 -

d = YYYYMMDDHHMMSS
hash = d + sha256(d + random_salt)[:10]

谢谢大家的回复。

So I have finally settled for this -

d = YYYYMMDDHHMMSS
hash = d + sha256(d + random_salt)[:10]

Thank you all for the response.

弥枳 2024-08-26 23:34:36

试试这个:

java.security.messageDigest()

Try this:

java.security.messageDigest()
无所的.畏惧 2024-08-26 23:34:36

我想如果你使用 SHA1(MD5(YYYYMMDDHHMMSS + YourSystemName + ClientName)) 40 个字符就可以了..;)

I think if you use SHA1(MD5(YYYYMMDDHHMMSS + YourSystemName + ClientName)) u'll be fine with 40 chars.. ;)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文