【问题标题】:How can I auto-generate unique fake names for users?如何为用户自动生成唯一的假名?
【发布时间】:2010-11-21 04:34:33
【问题描述】:

我们想给每个用户一个别名,以便我们可以在讨论中引用他们,同时保护他们的身份。这些别名应该是唯一的。

简单的方法是简单地使用 SERIAL 列,但 int 并不容易记住。我们想使用真实的人名,以便我们记住别名。

另一种简单的方法是在某处找到一个名字列表,给它们编号,然后使用 SERIAL 从列表中获取名字。当列表用完时,添加更多名称。

但是有一些聪明的方法将整数映射到名称吗?

我们目前拥有大约 2,000 名用户并且还在不断增长,但我怀疑我们是否会成为 Google。

【问题讨论】:

  • 您为什么要查看姓名和序列号?许多网站允许人们选择自己的别名。只需详细说明别名的用途以及当用户选择它时它将如何公开。
  • 好问题!这些别名供内部使用(例如报告研究结果)。用户永远不会看到它们。

标签: postgresql alias sequence privacy


【解决方案1】:

这听起来可能很疯狂。但是在游戏编程中使用an algorithm 来创建无意义但语音上独特的名称,例如 Alveolar、Bilabial、Glottal、Palatal、Velar。

【讨论】:

    【解决方案2】:

    你试过Hash functions吗?我不确定它们是否在 Postgres 中可用。但是,是的,一种方法是让内部散列函数负责。它们会输出唯一的 ID。

    【讨论】:

      【解决方案3】:

      回到“那个时代”Compuserve(或者是 AOL?)曾经通过有两个单词列表并从每个列表中取出一个单词并将其放在一起来提供临时的初始密码,所以你会得到像 EasyTomato 这样的东西管他呢。也许类似的东西对您的用户群有用。如果每个单词列表有 256 个字符,那就是 65535 个唯一的组合(注意你可以很容易地通过增加一个 16 位整数来选择组合)。

      编辑:好吧,毕竟不要直接增加整数,否则前 256 个人都会得到相同的第一个单词,但基本想法仍然是合理的。选择一个随机的、尚未使用的 16 位数字。高 8 位是您对第一个单词列表的索引,低 8 位是您对第二个单词列表的索引。

      【讨论】:

        【解决方案4】:

        the Census Bureau's names file 中选择一个随机名称。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-07-08
          • 2022-11-13
          • 2020-11-03
          • 1970-01-01
          • 2018-07-30
          • 2020-05-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多