当前位置: 首页 > 图文教程 > 网络编程 > 编程10000问 > 为什么用磁盘序列号加密过的代码不能被复制安装?

编程10000问
如何编制一个产生随机密码的函数?
如何利用当前时间生成随机函数?
如何做一个密码“生成器”?
如何做一个随机密码产生器?
如何将产生的密码记录并发送给用户并通过点击链接激活?
如何取回已忘记的密码?
如何让用户也能修改密码?
如何在线更改密码?
如何计算出当前日期属于定义时间段内的第几星期?
如何验证日期输入是否正确?
如何制作一个倒计时的程序?
如何制作一个Web日程安排表?
如何在网站中插播广告?
如何拒绝同一张表单被多次提交?
不用Global.asa也能实现统计在线人数吗?
如何防范利用刷新来“作弊”的计数器?
如何防止计数器刷新计数?
如何让计数器只对新进用户计数?
如何实时获知多少人在线?
如何最准确地统计在线用户数?

编程10000问 中的 为什么用磁盘序列号加密过的代码不能被复制安装?


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 32 ::
收藏到网摘: n/a


default.asp
html
head
title>星河影动之磁盘序列号加密代码存取管理</title
/head
% dim conn,fs,f
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "driver={Microsoft Access Driver (*.mdb)};uid=;pwd=3302;dbq="&server.mappath("id.mdb")
set fs=server.createObject("scripting.filesystemobject")
testDrive=Server.MapPath("/DRIVEINFO.ASP")
'
通过MapPath获得当前盘盘符.
testDrive=Left(testDrive,3)
set f=fs.getdrive(testDrive)
'
调用GetDrive方法赋予驱动器一个变量.
Mysql="select * From driveinfo where id=1"
set rsCheck = Server.CreateObject("ADODB.Recordset")
rsCheck.open Mysql,conn,1,1
FSER=trim(f.serialnumber)
'
获得当前盘序列号.
StrSerno=trim(rsCheck.fields("SERNO"))
StrMark=rsCheck.fields("WRIMARK")

' Wrimark值为0表示代表合法用户未安装系统,值为1代表该系统已安装.值为1且序列号与当前盘不符时,则判定为非法复制用户
if StrSerno
<>FSER and StrMark=0 then
'
如是第一次安装,则设置写盘标志为1.
session("pass")=true
'
定义用户Session,并设置为全局ASP文档标识变量.
set rsMain = Server.CreateObject("ADODB.Recordset")
Mysql1="update driveinfo SET SERNO="&FSER&", WRIMARK=1"
rsMain.open Mysql1,conn,1,2
response.write("
a href='success.asp'>安装成功!欢迎光临随风起舞存取站点!/a"
set rsMain=nothing
else
if StrSerno=FSER then
'
合法用户可再次进入.
session("pass")=true
response.write("
a href='success.asp'>再次欢迎!您已被随风起舞授权,允许进行存取.../a"
else
'
非法复制用户.
session("pass")=false
response.write("
a href='fail.htm'IT IS ILLEGAL TO COPY THE WEBSITE'S ASP DOCUMENT. YOU ARE NOT RIGRT TO USE THE PROGRAM./a"
end if
end if
set f=nothing
set fs=nothing
%

/html