首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何生成验证码/号码?

如何生成验证码/号码?
EN

Stack Overflow用户
提问于 2019-06-26 23:55:38
回答 2查看 0关注 0票数 0

我正在开发一个应用程序,用户必须拨打电话并使用手机键盘输入验证码。

我希望能够检测出他们输入的数字是否正确。电话系统无法访问有效号码列表,而是根据算法(如信用卡号码)验证号码。

以下是一些要求:

  • 输入有效的随机码一定很困难
  • 如果我输入错字(数字转换,错误数字),则必须难以拥有有效代码
  • 我必须有合理数量的可能组合(假设1M)
  • 代码必须尽可能短,以避免用户的错误

鉴于这些要求,您将如何生成这样的数字?

编辑:

@Haaked:代码必须是数字,因为用户用手机输入代码。

@matt b:第一步,代码显示在网页上,第二步是调用并输入代码。我不知道用户的电话号码。

跟进:我发现了几种算法来检查数字的有效性(请参阅这个有趣的Google Code项目:checkDigits)。

EN

Stack Overflow用户

发布于 2019-06-27 09:14:15

对于1M组合,您需要6位数。为了确保没有任何意外有效的代码,我建议9位数字,随机代码的工作概率为1/1000。我还建议使用另一个数字(总共10个)来执行完整性检查。就分布模式而言,随机性就足够了,校验位将确保单个错误不会产生正确的代码。

编辑:显然我没有完全阅读您的请求。使用信用卡号码,您可以对其执行哈希(MD5或SHA1或类似的东西)。然后在适当的位置截断(例如9个字符)并转换为基数10.然后添加校验位,这应该或多或少地适用于您的目的。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100001292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档