【问题标题】:How to generate a referral link from an Hash code in nodejs如何从nodejs中的哈希码生成推荐链接
【发布时间】:2021-10-22 13:09:15
【问题描述】:

我有一个系统,其中用户的每个帐户都有一个唯一 ID,我不能将该 ID 用作推荐链接,因为它包含破折号 - .

我需要生成一个唯一推荐代码鉴于该ID,我考虑使用该ID的sha256。 问题是sha256 太长,不能用作推荐,但如果我截断它,碰撞机会就会增加。

有没有办法在给定 id 的情况下生成推荐链接?

这是格式 ID:04v23533-680d-1107-j4h1-1c32343c1004

【问题讨论】:

  • 为什么破折号会阻止您将其用作推荐链接?
  • 我想要一个没有破折号的标准推荐链接
  • 带有破折号的推荐链接有什么不标准的地方?我能想到的第一个带有推荐系统的网站(亚马逊)在他们的推荐链接中使用破折号!
  • 那我不好,我会改变主意的,我希望至少不要有这么长的身份证

标签: javascript node.js hash sha


【解决方案1】:

如果您的用户 ID 是随机且唯一的,那么您不能使用它们生成较短的 ID 而不会发生冲突(因为您实际上是在尝试压缩随机数据)。

实际上,碰撞是否值得关注?如果你有 500 个用户,一个截断的哈希有千亿分之一的碰撞机会,这真的有问题吗?取决于您有多少用户,以及您的代码可以使用多长时间。

但是推荐链接不需要是秘密的,它们只需要是唯一的。因此,在最简单的级别上,您可以只生成顺序整数并将其用于 ID?当然,您可以猜到其他有效的推荐 ID,但谁在乎呢?

如果您希望它们更复杂一些,您可以生成随机字符串,并根据数据库中的当前 ID 列表检查它们以确保它们是唯一的。但是,一旦您拥有数百万用户,这可能会减慢速度。

【讨论】:

    猜你喜欢
    • 2018-09-10
    • 2011-08-09
    • 1970-01-01
    • 2017-11-24
    • 2016-07-09
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多