首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可读的GUID

可读的GUID
EN

Stack Overflow用户
提问于 2009-12-18 04:01:26
回答 13查看 6K关注 0票数 14

我正在写一个小系统,允许我在演唱会上出售乐队的音乐,通过制作代金券,可以在我们的网站上赎回MP3s。

凭证将需要用户输入的代码。代码需要具备以下特性:

  1. 在长度和内容上有一定程度的人类可读性,以防止用户受挫和数据输入错误。
  2. 给定一个凭单代码,猜测另一个凭单代码并不简单。

如果我使用GUID,我关心的是第1点。如果我使用一个递增的整数,我关心的是第2点。中间必须有一些快乐的介质,对吗?我想,也许这项工作已经完成,有一个理想的解决方案等待着我。如果没有,我想我将使用一个随机的字母数字字符串,或者可能只使用字母(为了清晰起见,不包括I和O),并让应用程序块IP地址失败X次,这意味着可能的暴力攻击。如果我这样做,一个字符串的长度和X的值会起作用,为什么?

谢谢你的帮忙!

更新:我没有完全明确的方法:我将生成列表的凭单代码打印,然后输入“出售”代码后的演出。因此,我认为像校验和这样的元素是不必要的,就像它们在不使用验证服务器的软件密钥中一样。

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2009-12-18 04:06:36

只有8个字母数字字母(I和O除外)有1785793904896种可能的组合。这是所有的意图和目的都无法猜测的,只要你没有50亿的凭单。

票数 4
EN

Stack Overflow用户

发布于 2009-12-18 04:06:18

你可以用一个经过英语音节训练的马尔可夫链来创建一个由可读的胡言乱语组成的句子。在打印有效凭证时,只需将生成的句子添加到数据库中(当然,当它们被赎回时使其无效)。

票数 9
EN

Stack Overflow用户

发布于 2009-12-18 04:08:19

AOL过去对他们发送的CD使用随机组合的两个单词。你可以采取同样的方法,只需增加字数就可以得到你所需要的机会。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1926206

复制
相关文章

相似问题

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