关于c#:生成一组(相对)简短的“邀请代码”的好方法是什么?

What is a good way to generate a set of (relatively) short “invitation codes”

本问题已经有最佳答案,请猛点这里访问。

在我的应用程序注册过程中,会询问用户是否有邀请代码。这是一种识别"VIP"用户并立即授予他们访问权限的方法,而不是将他们列入等待名单。

我已经搞清楚了所有的事情(大部分),但对于如何创建一组唯一的代码,以及存储它们的最佳方法,我一无所知。对于类似的事情,什么是普遍接受的实践,以及我应该如何将这些值存储在SQL中(作为字符串,或者作为二进制值,或者什么?)

谢谢!

编辑1

  • 任何随机的数字/字母都可以。不需要任何特定的格式。
  • 每个VIP用户都有自己的代码
  • 将(可能/希望)分发几千个代码。


假设您有关于被假定为唯一的用户的信息,例如电子邮件,您可以基于该信息创建哈希代码。

userinfo.email.gethashcode();

这可不太好看。但它有效。

我使用的另一种方法是创建一本鼓舞人心的引语词典。从字典中随机抽取一个,放入他们的个人资料中;我的注册链接,我给他们在报价字段的预填,并隐藏它,如果它通过URL进入是一个匹配。当他们提交数据以创建帐户时,他们的电子邮件和报价必须匹配。

你需要考虑的是,人们有多大可能试图盗用VIP账户。如果担心安全问题,则需要发送加密哈希。但是,如果这不是为了保护一个"高价值"的目标,那么考虑用户体验,提升你的品牌。这就是我选择引用的原因。

如果用户无法从邀请中清晰地复制和粘贴,请不要使用用户难以输入的内容。