我的最初想法是在创建账户时将电子邮件地址放入用户名和电子邮件字段中,但这不起作用,因为Django将用户名字段限制为30个字符,这可能不足以容纳电子邮件地址。
我的第二个想法是对电子邮件地址进行md5哈希处理,将哈希值放入用户名字段中,这将使其始终唯一(并且从技术上讲,与电子邮件字段相同)。 md5是32个字符,而我只有30个字符可用。
我的第三个想法是从md5哈希的末尾截取最后两个字符,使其变为30个字符,然后像计划中使用完整哈希值那样使用它。但我不知道以30个字符为界的两个哈希值相同且仅在31和32处不同的机会有多大,我已经将它们砍掉了。
有没有更好的方法来关联用户名字段和电子邮件地址的内容,以确保其始终唯一?