【发布时间】:2020-09-20 16:44:27
【问题描述】:
我们希望生成一个validation code 供最终客户使用,以获取和/或验证世界各地的各种场景。代码将在我们的服务器上生成,然后传输并显示在应用程序中,但代码可能需要手动、通过电子邮件甚至通过电话传输给其他用户/人。此类代码的示例可能是ABC123。
我们希望在这样的验证代码中为字符找到一个“字母表”,以平衡一些问题:
- 字母必须在世界范围内都能被识别,这可能会限制我们可以使用的字母/数字/符号
- 代码必须能够输入,例如客户手机上的应用,因此需要使用本地键盘
- 由于代码可以通过电话或类似的模拟方式传输,因此最好使用较短的代码以避免错误
- 某些代码可能在更长的时间内有效,因此我们希望有足够宽的字母表和足够长的代码,以使“蛮力”攻击不是攻击向量
- 我们可能更喜欢不区分大小写的代码,以避免模拟传输中的混淆
我们最初的想法只是一个例子。 9 位数字,但存在一些关于暴力攻击的担忧,业务方面理想情况下需要更短的代码。移动到例如A-Z 和 1-9(不包括一些容易混淆的字符,例如“O”和 0),字母大小增加到 20+,并且可以使用更短的代码,但是国际用户和他们的手机键盘呢?
总结:我们希望得到一些反馈、想法甚至现有标准,以了解如何从全球可访问的字母表中生成全球可接受、易于输入和传输但仍然安全的代码
【问题讨论】: