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

时间:2009-12-18 13:43:56

标签: django email login

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

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

任何建议都非常感谢!

2 个答案:

答案 0 :(得分:3)

我不会过分强调GUID超过30个字符。一种合理的方法可能是使用类似MD5的东西来散列GUID,然后修剪掉最后2个字符。你碰撞的几率实际上是零。 (16 30 是一个非常大的数字。)

答案 1 :(得分:1)

这些链接string length of a GUIDCharacters in a GUID表明guid实际上只有16个字符。它的ASCII等价物更长。因此,只要您在显示之前来回转换(或者如果您根本不打开它们),GUID就会非常适合用户名字段。