我想过用+1后判断是否靓号的方法,但是这样就会给人判断出来目前已有多少会员了。
我是希望和qq那样,注册的账号限定在5位数。
每次注册都可以生成一个随机且不重复的五位数账号。
当五位数不够用时在近进六位数,似乎实现起来很麻烦。 回复 15# xiaowo
生日算不算,纠结这个没多大意义,即使有规则也不能指定具体的 回复 16# kxing
原来是这样啊,我倒是有个想法,先试下~~ 回复 16# kxing
看下这个如何???
;会员注册数字ID问题:要求输出的数据找不到规律,大小也不一定
;需要添加判断$index的值是否已经到了数据的尽头,即会员是不是用完了,需要升位等,以及你那个所谓的"靓号"判断,这里我就不加了
;此方法的好处是:除了本身的所谓的随机性外,还做到了:
;高效性(可以先生成1亿会员ID,然后保存到数据库里,需要输出时直接读就可以了)
;"物尽其用"---除了你所谓的"靓号"外,所有的ID都用得上,不存在某个数因随机性的问题没有输出(当然,"靓号"如何处理,那是你的事了)
;方便统计:只要记录下当前输出的行号(如果是在数组中,可以通过索引判断),就很方便知道已经有多少个ID被注册了
Global $index=0
$Form1 = GUICreate("会员注册数字ID演示", 270, 60)
$Button1 = GUICtrlCreateButton("注册个ID", 6, 6, 85, 30)
$Label1 = GUICtrlCreateLabel("", 100, 12, 200, 60)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
GUISetState(@SW_SHOW)
$aMember=_randomNUMArray()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $Button1
GUICtrlSetData($Label1,'恭喜您获得的会员ID是:'&@LF&' '&$aMember[$index])
$index+=1
EndSwitch
WEnd
Func _randomNUMArray($iStart=10000,$iEnd=99999);参数分别是ID的开始和结束
Local $iCount=$iEnd-$iStart
If $iCount<0 Then Return SetError(1)
Local $aNum[$iCount]
For $i = 0 To $iCount-1
$aNum[$i] = $iStart
$iStart+=1
Next
For $i = 0 To $iCount-1
$r = Random($i, $iCount-1, 1)
$temp = $aNum[$i]
$aNum[$i] = $aNum[$r]
$aNum[$r] = $temp
Next
Return $aNum
EndFunc
感谢楼上的朋友!!!!
看看是否用得上。。。 回复 19# annybaby
什么叫先生成1亿个,如果这样的话,排除‘靓号’的效率如何去计算,没看出有多高效
标题
回复 21# netegg其实,这个跟直接破解和利用彩虹表破解windows登录密码是一样的道理,两者的效率不可同年而语! 本帖最后由 netegg 于 2013-1-16 09:27 编辑
回复 22# annybaby
非枚举破解都可以认为是非随机的 回复 23# netegg
蛋兄,你知道我在说什么吗?
算了,还是等楼主上来再说吧… 本帖最后由 netegg 于 2013-1-16 09:33 编辑
回复 24# annybaby
我现在比较怀疑的是:;高效性(可以先生成1亿会员ID,然后保存到数据库里,需要输出时直接读就可以了),这个高效性是怎么出来的
两种情况:1,生成一个永久数据库,那么去掉靓号随机取索引和直接出号的区别有多大
2,生成一个临时数据库,生成库的时间怎么算,还何谈效率 唯一的数字帐号???
年月日时分秒毫秒成不?
不够长地话把天数是今年第几天也加进去,或者再后面再加上4位随机数
页:
1
[2]