高分请较了哈,帮帮忙。

flbz 2003-08-19 08:01:52
需要做一个卡号管理的程序,要求生成一批卡号,写入数据库。

语言:asp
数据库: sql server

有什么好的解决方案,或能提供算号方法的都给分。不够再开贴。
...全文
24 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinesun 2003-08-20
  • 打赏
  • 举报
回复
随机产生一个8位数字,然后将其乘以一个代码,再加上一定的数字,然后取其末六位为密码,按一定顺序产生卡号,然后让密码与卡号对应入库
这样比较好些。卡号不要随机产生。
甘泉123 2003-08-20
  • 打赏
  • 举报
回复
先用当前时间,之后几位用随机的~~方便管理~~
delphine 2003-08-20
  • 打赏
  • 举报
回复
要避免重复
laibagefei 2003-08-20
  • 打赏
  • 举报
回复
为了避免重复,最好是根据当前时间生成卡号
GHOSTWY 2003-08-20
  • 打赏
  • 举报
回复
看看这个 改改就可以用了


'生成随机密码
Function getRandomPwd(pLen) ''pLen 密码长度
If (pLen="" Or isnumeric(pLen)=false) Then pLen=6 '默认为6位
Const CharLib="123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ"
Dim iLen
iLen=Len(CharLib)
Dim i,chP
Dim strTmp
strTmp=""
Randomize()
For i=1 to pLen
strTmp = strTmp & Mid(CharLib,Int((iLen-1)*Rnd+1),1)
Next
getRandomPwd=strTmp
End Function





'产生随机密码,传入随机密码的长度
function randompwd(num)
dim i,intnum,intUpper,intLower,intRand,strPartPass,genPassword,pwdlen
genpassword=""
if isNumeric(num) then
if cint(num)>1 then
pwdlen=cint(num)
else
pwdlen=7
end if
else
pwdlen=7
end if
randomize

for i=1 to pwdlen
'0-9
intnum=int(10 * rnd + 48)
'A-Z
intupper=int(26 * rnd + 65)
'a-z
intlower=int(26 * rnd + 97)
'1 显示数字 2 大写字母 3小写字母
intrand=int(3 * rnd + 1)

select case intrand
case 1
strpartpass=chr(intnum)
case 2
strpartpass=chr(intUpper)
case 3
strpartpass=chr(intlower)
end select
genpassword=genpassword & strpartpass
next
randompwd=genpassword

end function








Randomize
Do While Len(rndnum)<6
num1=CStr(Chr((57-48)*rnd+48))
rndnum=rndnum&num1
loop
password=rndnum
chon81 2003-08-20
  • 打赏
  • 举报
回复
可以部分随机,部分不随机
这样不会重复,也不易破
youdeming 2003-08-20
  • 打赏
  • 举报
回复
chinesum的方法可以,你可以根据随机的几位数再通过一定的算法算出另外几个数,再把两组数字通过一定的组合不就成了卡号,别人也不容易破解
Nakata6 2003-08-20
  • 打赏
  • 举报
回复
关注
hzqq 2003-08-19
  • 打赏
  • 举报
回复
就用卡号吗?
那你制定一些规则,比如第2个数字加上第5个数字乘以第3个数字等于多少什么地
然后满足这条规则的都行
加完卡以后把这个卡号加入数据库
以后不能再使用
这样的优点是做起来方便,缺点是庞大了以后速度慢,而且被破解了就废了
wandola 2003-08-19
  • 打赏
  • 举报
回复
n你的卡号需要保密么?还是什么?
可以用卡号加密码嘛,我还没有听说卡号可以保密的,
yaozhg 2003-08-19
  • 打赏
  • 举报
回复
什么???随机算出来的号会容易被破?难道不随机的号就难识破?

问题是长度,10位以上就安全很多了。

每次生成号时检查数据库中是否有重复,那怎么可能会有相同的号码?
flbz 2003-08-19
  • 打赏
  • 举报
回复
这样算出的号太容易重复和被破
zhuyangfeng 2003-08-19
  • 打赏
  • 举报
回复
当然是用随机数

先设定你要取的长度,然后用循环写入数据库,每次要检测数据库里是否已经存在这个新数。
haper99 2003-08-19
  • 打赏
  • 举报
回复
随机函数不行么?不要重复就是了。
flbz 2003-08-19
  • 打赏
  • 举报
回复
希望有人帮忙

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧