恭喜您,您中奖了,你的中奖码是(请牢记,领奖需要):XXXXXXXXXXX
然后用户输入XXXXXXXXXXX,简单验证后就可以领奖了。
你使用过这样的功能,或者有没有想开发一个这样的功能呢?
有一个思路是:将一批唯一中奖码,录入的到数据库,中奖时,取出来一条,做一个标记,把中奖码告诉用户。
但是这样要先将一批中奖码录入到数据库中,有没有其他方法呢?
比如:200807151054281502895e585d7e4b529e,能不能做到:不到数据库中查询验证就可以确认这个中奖码是不是有效(不是伪造)的呢?
我有一个思路,如果愿意,请听我说一下:)
比如这个中奖码:200807151054281502895e585d7e4b529e
他有三部分组成
20080715105428 1502 895e585d7e4b529e
20080715105428 是年月日时分秒YYYYMMDDhhmmss
1502 是四位随机数,防止第一部分重复
895e585d7e4b529e 前两部分+PrivateKey的 MD5 16位的值
一句话:中奖码的前18位和后16位是有关系的
这样,只要别人猜不到你的PrivateKey,就伪造不了你的中奖码。
不足之处,这个中奖码长了点:(
代码如下:
getkey() 返回一个唯一的中奖码
ckkey(s) 验证中奖码是否有奖