刮刮卡代码

发布于 2024-12-06 04:06:59 字数 453 浏览 3 评论 0原文

我会尽量简单、清晰、直接。我的问题如下:我有一个项目需要 生成刮刮卡代码。刮刮卡的印刷方式与您用于充电的刮刮卡类似。 手机。

该系统是人们购买卡,获取卡上的代码,然后调用 TOIP 服务器(Asterisk)并插入代码来访问服务。系统将尝试输入 3 次正确的代码。

我想制作一个 PHP 程序来生成这些代码,所以我肯定需要通过 PRNG(伪随机数生成器)。我的限制是:

- 正如人们所说,代码不应该太长,但足够长以确保安全。

-当比较输入的代码时,我需要系统足够快 以及存储在数据库中的一个(用于统计目的)。

所以我的问题是:

- 使用 PRNG 是否正确?

-如果是,您知道一个足够强大的随机数来生成好的随机数吗?

- 行业使用什么标准?

- 如果要对数百万个代码进行比较,如何使比较算法足够快?

感谢您的时间和答复。

I'll try to be simple, clear and direct. My problem is the following: I have a project where I need to
generate codes for scratch cards. The scrath cards are printed like the ones you use for charging your
mobile phone.

The system is that people buy the cards, get the codes on the cards, then call a TOIP server (Asterisk) and inserts the code to access a service. It is given three attempts to enter the right code.

I thought to make a PHP program to generate theses codes, so I surely need to pass by a PRNG (Pseudo Random Number Generator). My constraints are:

-As the people are calling, the code shouldn't be too long, but long enough to ensure security.

-I need the system to be fast enough when the comparison is made between the code entered
and the one stored in the database (needed for statistics purposes).

So my questions is:

-Is it right to use a PRNG?

-If yes, do you know one strong enough to generate good random numbers?

-What standards are used by the industry?

-How to make the comparison algorithm fast enough if the comparison is made on million of codes?

Thanks for your time and answers.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

波浪屿的海角声 2024-12-13 04:06:59

是的,稍微调整一下 PRNG 就可以正常工作了。

http://en.wikipedia.org/wiki/Random_password_generator

可以参考密码生成器代码在上面的链接中。您必须确保第一位数字不为 0,并且仅使用数字而不是字母。

一旦生成数字,您必须在插入之前检查它是否存在于数据库中。

通常,行业使用 16 个字符/数字。您还可以生成 20 位数字,以使整个过程更快。

为了使匹配更快,您必须在数据库中索引该字段。最有可能的是 char(16) 或 char(20)。

注意:因为这里不需要 varchar ,所以 char 是最好的选择。

保持Mysql表引擎为MYISAM,以便快速比较。

Yes, PRNG will work fine after tweaking it little bit.

http://en.wikipedia.org/wiki/Random_password_generator

You can refer to the password generator code in the link above. You have to make sure first digit is not 0 and use only digits not alphabets.

once a number is generated you have to check if it exists in DB or not before you insert.

Normally, 16 character/digits are used by industries. You can generate 20 digit numbers also to make the whole process faster.

To make a matching faster you have to index the field in database. most probably it will be a char(16) or char(20).

Note : as there is no need of varchar here char is the best option.

Keep the Mysql table engine as MYISAM for fast comparision.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文