- Asp生成随机字符的函数
- 作者:未知 来源:本站整理 添加时间:2009年7月10日 字体:大 中 小
- 85379随机字符在asp中用途很多,比如给上传的图片文件命名,登陆验证码,还有文章类网站的干扰码等等,下面列举了8个常用的随机字符的函数.
"9!
,F
"9!
,F1.
"9!
,Ffunction MyRandc(n)
"9!
,F’生成随机字符,n为字符的个数 ,该随机函数由大小写字母组成,不含数字
"9!
,Fdim thechr
"9!
,Fthechr = ""
"9!
,Ffor i=1 to n
"9!
,F dim zNum,zNum2
"9!
,F Randomize
"9!
,F zNum = cint(25*Rnd)
"9!
,F zNum2 = cint(10*Rnd)
"9!
,F if zNum2 mod 2 = 0 then
"9!
,F zNum = zNum + 97
"9!
,F else
"9!
,F zNum = zNum + 65
"9!
,F end if
"9!
,F thechr = thechr & chr(zNum)
"9!
,Fnext
"9!
,FMyRandc = thechr
"9!
,Fend function
"9!
,F
"9!
,F使用方法:
"9!
,F
"9!
,FMyRandc(n) 生成随机字符,n为字符的个数,
"9!
,F
"9!
,F如:
"9!
,Fresponse.write MyRandn(10)
"9!
,F输出10个随机英文字母字符
"9!
,F
"9!
,F2.’功能说明:生成指定长度的随机字符,大小写英文字母加数字
"9!
,Ffunction gen_key(digits)
"9!
,F’定义并初始化数组
"9!
,Fdim char_array(80)
"9!
,F’初始化数字
"9!
,Ffor i = 0 to 9
"9!
,Fchar_array(i) = cstr(i)
"9!
,Fnext
"9!
,F’初始化大写字母
"9!
,Ffor i = 10 to 35
"9!
,Fchar_array(i) = chr(i + 55)
"9!
,Fnext
"9!
,F’初始化小写字母
"9!
,Ffor i = 36 to 61
"9!
,Fchar_array(i) = chr(i + 61)
"9!
,Fnext
"9!
,Frandomize ’初始化随机数生成器。
"9!
,Fdo while len(output) < digits
"9!
,Fnum = char_array(int((61 - 0 + 1) * rnd + 0))
"9!
,Foutput = output + num
"9!
,Floop
"9!
,F’设置返回值
"9!
,Fgen_key = output
"9!
,Fend function使用方法:
"9!
,F把结果返回给浏览器
"9!
,Fresponse.write "本实例生成的十三位随机字符串为:"
"9!
,Fresponse.write ""
"9!
,Fresponse.write gen_key(13) ‘这里可以更改长度
"9!
,Fresponse.write ""
"9!
,F
"9!
,F3.这个虽然不是函数,也不是常规的随机函数,但是当我"9!
,F们想让它随机输出我"9!
,F们指定的字符时,可以用到下面的方法。
"9!
,F
"9!
,Fdim a(5)
"9!
,Frandomize
"9!
,Ft=int(rnd*5)
"9!
,Fa(0)="yingyu"
"9!
,Fa(1)="laoda"
"9!
,Fa(2)="wangzhan"
"9!
,Fa(3)="maiwangzhan"
"9!
,Fa(4)="hehe"
"9!
,F使用方法:
"9!
,Fresponse.Write(a(t))
"9!
,F
"9!
,F
"9!
,F4.功能说明:返回16位随机字符,大小写英文字母加数字
"9!
,Fpublic function Generate_Key()
"9!
,F
"9!
,FRandomize
"9!
,F
"9!
,Fdo
"9!
,Fnum = Int((75 * Rnd)+48)
"9!
,Ffound = false
"9!
,Fif num >= 58 and num <= 64 then
"9!
,Ffound = true
"9!
,Felse
"9!
,Fif num >=91 and num <=96 then
"9!
,Ffound = true
"9!
,Fend if
"9!
,Fend if
"9!
,Fif found = false then
"9!
,FRSKey = RSKey+Chr(num)
"9!
,Fend if
"9!
,Floop until len(RSKey)=16
"9!
,F
"9!
,FGenerate_Key=RSKey
"9!
,F
"9!
,Fend function 使用方法:
"9!
,FResponse.Write Generate_Key()
"9!
,F
"9!
,F5.功能说明:返回指定长度的随机字符,大小写英文字母加数字组成
"9!
,F
"9!
,Ffunction makePassword(byVal maxLen)
"9!
,FDim strNewPass
"9!
,FDim whatsNext, upper, lower, intCounter
"9!
,FRandomize
"9!
,FFor intCounter = 1 To maxLen
"9!
,FwhatsNext = Int((1 - 0 + 1) * Rnd + 0)
"9!
,FIf whatsNext = 0 Then
"9!
,Fupper = 90
"9!
,Flower = 65
"9!
,FElse
"9!
,Fupper = 57
"9!
,Flower = 48
"9!
,FEnd If
"9!
,FstrNewPass = strNewPass & Chr(Int((upper - lower + 1) * Rnd + lower))
"9!
,FNext
"9!
,FmakePassword = strNewPass
"9!
,Fend function使用方法:dim radpass
"9!
,Fresponse.write makePassword(6) ’6位字符
"9!
,F6.
"9!
,F功能说明:生成任意位随机数的函数
"9!
,F'strLong是随机数字的位数,返回指定长度的数字串,不含字母
"9!
,FFunction rndNum (strLong)
"9!
,FDim temNum
"9!
,FRandomize
"9!
,FDo While Len(RndNum) < strLong
"9!
,FtemNum=CStr(Chr((57-48)*rnd+48))
"9!
,FRndNum=RndNum&temNum
"9!
,Floop
"9!
,FEnd Function
"9!
,F使用方法:
"9!
,Fresponse.write rndNum(6)
"9!
,F
"9!
,F
"9!
,F7.功能说明:取指定范围内的指定个数的随机数,无重复数
"9!
,F
"9!
,F指定5个参数:
"9!
,FiLessCount----取最少n个数(Integer)
"9!
,FiMostCount----取最多n个数(Integer)
"9!
,FiLessNumber----取数最小范围(Integer)
"9!
,FiMostNumber----取数最大范围(Integer)
"9!
,FcutZero----是否要剔除无效零(Boolean)[例:true-->3,false-->003]
"9!
,F
"9!
,FFunction rndNumber(iLessCount,iMostCount,iLessNumber,iMostNumber,cutZero)
"9!
,F If iLessCount = 0 OR iMostCount < iLessCount OR NOT _
"9!
,F isnumeric(iLessCount) OR NOT isnumeric(iMostCount) OR NOT _
"9!
,F isnumeric(iLessNumber) OR NOT isnumeric(iMostNumber) _
"9!
,F OR (iLessNumber = iMostNumber) Then Exit Function
"9!
,F ’最少个数零、最大个数小于最小个数、4个参数不为数字、最小数等于最大数就退出函数
"9!
,F Randomize
"9!
,F Dim iRnd,sZero
"9!
,F Dim sOutput
"9!
,F Dim iLength
"9!
,F Dim sTempOutput
"9!
,F Dim i
"9!
,F Dim iCount
"9!
,F iCount = int(rnd*(iMostCount-iLessCount+1))+iLessCount’计算随机取几个数
"9!
,F iLength = len(iMostNumber)*iCount+(iCount*2)
"9!
,F ’长度为最大数长度乘以随机个数加上随机个数乘以2(每个数前后各一个逗号,用来全字匹配)
"9!
,F Do While len(sOutput) < iLength’输出小于长度时循环
"9!
,F iRnd = int(rnd*(iMostNumber-iLessNumber+1))+iLessNumber’取随机数
"9!
,F If Len(iRnd) < len(iMostNumber) Then’随机数长度小于取最大数长度
"9!
,F For i = 1 To len(iMostNumber) - len(iRnd)’那么就要在首位加缺少的零
"9!
,F sZero = sZero & "0"
"9!
,F Next
"9!
,F End If
"9!
,F iRnd = sZero & iRnd’把零加在随机数前面
"9!
,F sZero = empty’清空首位零,循环后还要调用
"9!
,F If Instr(sOutput,","&iRnd&",") < 1 Then’不在输出变量中就放进去0
"9!
,F sOutput = sOutput & "," & iRnd & ","
"9!
,F End If
"9!
,F Loop
"9!
,F
"9!
,F sOutput = mid(sOutput,2,len(sOutput)-2)’去掉首尾逗号
"9!
,F sOutput = Replace(sOutput,",,",",")’把双逗号替换成单逗号
"9!
,F
"9!
,F If cutZero = true Then’如果要去除首位多余的零
"9!
,F sTempOutput = split(sOutput,",")’拆分为数组
"9!
,F sOutput = empty’清空,后面要重新放入
"9!
,F For i = 0 To Ubound(sTempOutput)’逐个转换成数值后放入
"9!
,F sOutput = sOutput & Clng(sTempOutput(i)) & ","
"9!
,F Next
"9!
,F sOutput = mid(sOutput,1,len(sOutput)-1)’去掉末尾逗号
"9!
,F End If
"9!
,F rndNumber = sOutput’输出
"9!
,FEnd Function
"9!
,F使用方法:
"9!
,FResponse.Write rndNumber(1,3,5,15,false)
"9!
,F
"9!
,F8.功能说明:生成随机字符串,包括大小写字母,数字,和其它符合,常用于干扰码。
"9!
,F
"9!
,F参数说明:stars--干扰码最小长度,ends--干扰码最大长度
"9!
,F
"9!
,Ffunction rndcode(byVal stars,byVal ends)
"9!
,F'by 天空诚 from:aspxhome.com
"9!
,Fdim rndlen,i
"9!
,Frandomize
"9!
,FrndLen = int(stars*rnd+ends-stars)
"9!
,Ffor i = 1 to rndLen
"9!
,F randomize
"9!
,F rndcode = rndcode & chr(int(127*rnd+1))
"9!
,Fnext
"9!
,Fend function
"9!
,F使用方法:response.write rndcode(20,100)85376
- 返回页面顶端


- 上一篇:css教程:DIV布局网页的常见错误
- 下一篇:爆笑情侣北京方言对骂
返回上一页
打印本文
加入收藏
页面最后更新时间:2011年5月18日