我正在开发一个在线网站,该网站的访问权限将在大学书店出售。学生将在书店购买一张带有访问代码的卡,然后他们可以使用该卡在我们的网站上在线注册。
我想让代码尽可能用户友好。我个人讨厌注册产品并且必须输入注册密钥 5 次,因为它不明确。
谁能指出我描述设计代码本身格式的最佳实践的资源?显而易见的事情浮现在脑海中——不要使用零或字母 O,不要区分大小写,包括某种校验和。我不想在这里发挥创造力,我需要一个必须多次解决的问题的秘诀。
我正在开发一个在线网站,该网站的访问权限将在大学书店出售。学生将在书店购买一张带有访问代码的卡,然后他们可以使用该卡在我们的网站上在线注册。
我想让代码尽可能用户友好。我个人讨厌注册产品并且必须输入注册密钥 5 次,因为它不明确。
谁能指出我描述设计代码本身格式的最佳实践的资源?显而易见的事情浮现在脑海中——不要使用零或字母 O,不要区分大小写,包括某种校验和。我不想在这里发挥创造力,我需要一个必须多次解决的问题的秘诀。
Joel Spolsky 在最近的一个 StackOverflow 播客中对解决这个问题有一些很好的见解。我相信这一集是第 49 集,您应该下载播客或在https://stackoverflow.fogbugz.com/default.asp?W4上查看成绩单
处理一个键中混合的 0(数字)和 O(字母)真的很烦人,因为某些字体很难区分这两者。
其他可用性概念,例如三人一组更容易处理和记住,然后一个数字是很好的注意事项。例如,345-829-817-432 而不是 345829817432。
顺便说一句,345-829-817-432给你 12^10 个排列,甚至更小的数字345-829-817给你 9^10 个排列,这可能会根据你的情况给你足够的力量。
楚斯,
十亿
这实际上取决于您需要多少安全性。一些想法浮现在脑海。
如果你想要一些非常简单的东西,你可以生成模拟的信用卡号码;学生擅长使用这些四位数的组合,并且可以使用 Luhn 算法对其进行检查。
如果您想要更强大的东西,您可以生成一个 GUID,并将其用作代码。
如果您的网站可以发送电子邮件,您可以向学生询问他们的电子邮件地址,并向他们发送挑战/回复电子邮件。那么你根本不需要代码。他们的电子邮件地址就是代码。