我想要生成一个6位数字的序列号,范围从A(只有大写允许)。
serial = "ABCDEF"问题是,有些字母被认为与其他字母/数字混淆。
U <-> V
O <-> 0 (number)
I <-> 1 (number)那么,是否有任何现有的安全字母可以作为种子来生成一个安全的序列号?
发布于 2014-11-01 09:59:05
取决于您使用的字体:
请注意,不应该只排除对中的一个字符(例如0/O中的O),而是同时排除(O和0)。用户不会知道您将他们排除在外,除非您通过在文本框中输入这些字符时触发一些视觉响应来使其变得明显。作为一个例子,几年前,我写了一个自定义的验证码,实际上,像"B“这样的字符被排除在外。在“验证法”之下,有一段文字:
图像不包含以下字符: B、D、I和O。
根据日志,仍然有许多用户尝试了这四个字符。修改“人道协调中心”,使之:
图像不包含以下字符B、D、I、O、0、1和8。
有帮助,因为不再有任何歧义。后来,删除这段文字并没有降低成功率。
与其排除字母,您还可以尝试以下选项:
0/O,很明显哪一个是数字,哪个是大写字母。003197 )时,一些用户将按原样输入它,而其他用户则只输入最后四位数。另外,在你的连载中放空格或破折号。比较一下左边的和右边的:
5F91PS 5F-91-PS
CY4BIW CY-4B-IW
ZHL0A2 ZH-L0-A2右边的字体更容易打字和在手机上拼写(这也是微软的串行词包含破折号的原因,尽管它们的长度(25个字符)使它们很难键入)。
https://softwareengineering.stackexchange.com/questions/261510
复制相似问题