代码之家  ›  专栏  ›  技术社区  ›  Art

django:在用户名中使用hash/guid

  •  1
  • Art  · 技术社区  · 15 年前

    我将在整个网站中使用电子邮件作为用户名,但是我仍然需要以某种方式在用户模型中预先填写强制用户名字段。

    最初我考虑使用电子邮件的MD5散列作为用户名,但是考虑到30个字符的限制,这是不可能的。另外,我认为我不能使用guid,因为它们在转换为字符串十六进制时也超过30个字符。

    非常感谢您的建议!

    2 回复  |  直到 14 年前
        1
  •  3
  •   Dominic Rodger    15 年前

    我不会过分强调guid的长度超过30个字符。一种合理的方法可能是使用类似MD5的方法散列guid,然后去掉最后2个字符。你发生碰撞的可能性实际上是零。(16) 三十 是一个非常大的数字)。

        2
  •  1
  •   Community CDub    7 年前

    这些环节 string length of a GUID Characters in a GUID 显示一个guid实际上只有16个字符长。它是ASCII码的等价物,比较长。因此,只要您在显示前来回转换(或者如果您根本不想显示它们),guid就可以很好地适应用户名字段。