自从ASP(Active Server Pages)问世以来,因其可以创建健壮易于维护、与平台无关的应用系统,ASP技术受到了越来越多网络程序员的喜爱,使用ASP从事WEB开发的人也越来越多。但ASP只是一种非编译型的、在服务端运行的脚本语言,采用明文(plain text)方式来编写,即使采用了ASP加密程序对ASP源码进行加密,也不一定能保证发布到运行环境中去的ASP应用程序不被非法拷贝。对于高权限的管理员,可以轻而易举从服务器端拷贝出ASP程序应用到别的非授权网站。这样给ASP应用商业化带来了一定的困难。如何有效保护开发出来的ASP程序,本文基于磁盘序列号产生的随机性,结合微软官方免费提供的ASP脚本加密程序SCRENC.EXE,很好地解决了这个问题。
<html> <head> <title>Sample</title> </head> <% dim conn,fs,f Set conn = Server.CreateObject('ADODB.Connection') conn.open 'driver={Microsoft Access Driver (*.mdb)};uid=;pwd=kxj;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') 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'>SETUP SUCCESSFUL!WELCOME TO ACCESS THE WEBSITE!</a>') set rsMain=nothing