asp实现ACCESS数据库加密方法
作者:翟振凯 来源:www.xiaoqi.net 发布时间:2008-04-18 12:33:00
标签:加密,access,数据库,asp
关于本文:
本着互联网共享主义精神,特写此文献给建站新手,授人以鱼,不如授人以渔,本文所讲的只是方法和原理,希望大家看完此文,能够从中得到些帮助和启发。
本程序是翟振恺(小琦)原创的,现在我免费发布出来,请转用或转载时不要把版权去掉。
本程序是针对不能用组件加密asp的用户写的,应该可以有效的保护ACCESS数据。
由于本人写作水平有限,写的不好的地方,还请大家多多包涵,如要批评或意见,请加我QQ。
<%
'www.xiaoqi.net
'QQ:22336848
if Request("mdbname")<>"" then
'------------------------取磁盘序列号----------------------------小琦
set fs=server.createObject("scripting.filesystemobject")
testDrive="G:\"
set f=fs.getdrive(testDrive)
''调用GetDrive方法,将驱动器赋予一个变量
xlh=trim(f.serialnumber) '取到磁盘序列号
'-------------------------取绑定的网站地址---------------------------小琦
myname=Request.ServerVariables("SERVER_NAME")'我绑定我的主机名
'-------------------------取二进制数据---------------------------小琦
url=server.MapPath(".")&"\[url]www.xiaoqi.net[/url]" '取一个exe文件或其它的文件作为提供加密的文件,为了安全,你可以把这个文件放到别人下载不到的地方。
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set fl=fso.getfile(url)
flsize=fl.size
flName=fl.name
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
objStream.LoadFromFile url
Password=objStream.Read'二进制数据
Password=left(Password,4)&right(xlh,3)&myname'数据库密码用二进制数据+磁盘序列号+绑定的网站地址
Password=left(Password,19)'ACCESS数据库密码好像最多20个字符,我用了19个
db="xq.mdb"
SavePath=Server.MapPath(".")
'----------------------------------------------------小琦
Application.Contents.RemoveAll()
Dim fs, Engine
Set fs = CreateObject("Scripting.FileSystemObject")
mdbname = Request("mdbname")
If fs.FileExists(Server.Mappath(mdbname)) Then
Set Engine = CreateObject("JRO.JetEngine")
'----------------------------------------------------改数据库密码
if request("dz")=1 then
Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath(mdbname), "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password="&Password&";Data Source=" & Server.Mappath(mdbname & ".temp")
else
Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password="&Password&";Data Source=" & Server.Mappath(mdbname), "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath(mdbname & ".temp")
end if
'----------------------------------------------------改数据库密码
fs.CopyFile Server.Mappath(mdbname & ".temp"),Server.Mappath(mdbname)
fs.DeleteFile(Server.Mappath(mdbname & ".temp"))
Set fs = Nothing
Set Engine = nothing
if request("dz")=1 then
Response.write "<p><font color=#FF0000>数据库加密成功!...</font>"
Else
Response.write "<p><font color=#FF0000>数据库解密成功!...</font>"
end if
Else
Set fs = Nothing
Response.Write "<p><br><br>数据库名称或路径不正确. 压缩失败!" & vbCrLf
End If
end if
%>
<form method="POST" action="--WEBBOT-SELF--">
<p><b>加密解密码数据库</b></p>
<p><input type="text" name="mdbname" size="20" value="测试.mdb"> 数据库名</p>
<p><input type="radio" value="1" name="dz" checked>加密
<input type="radio" value="2" name="dz">解密</p>
<p><input type="submit" value="提交" name="B1"><input type="reset" value="重置" name="B2"></p>
</form>
连接加密后的数据库的方法:
<b>测试数据库连接</b>
<!-- 绑定域名和数据库,绑磁盘序列号的我没做,其实也很简单 -->
<%
db="测试.mdb"
%><!-- 下面这句是加密函数 --><%
'------------------------取磁盘序列号----------------------------小琦
set fs=server.createObject("scripting.filesystemobject")
testDrive="G:\"
set f=fs.getdrive(testDrive)
''调用GetDrive方法,将驱动器赋予一个变量
xlh=trim(f.serialnumber) '取到磁盘序列号
'-------------------------取绑定的网站地址---------------------------小琦
myname=Request.ServerVariables("SERVER_NAME")'我绑定我的主机名
'-------------------------取二进制数据---------------------------小琦
url=server.MapPath(".")&"\[url]www.xiaoqi.net[/url]" '取一个exe文件或其它的文件作为提供加密的文件,为了安全,你可以把这个文件放到别人下载不到的地方。
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set fl=fso.getfile(url)
flsize=fl.size
flName=fl.name
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
objStream.LoadFromFile url
Password=objStream.Read'二进制数据
Password=left(Password,4)&right(xlh,3)&myname'数据库密码用二进制数据+磁盘序列号+绑定的网站地址
Password=left(Password,19)'ACCESS数据库密码好像最多20个字符,我用了19个
%><!-- 下面是连接数据库 --><%
dim conn
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password="&Password&";Data Source=" & server.MapPath(db)
set rs = conn.execute("select * from [test] order by id desc ")
response.write rs("name")
conn.close
conn=noting
%>
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 以下代码实现了ip查询功能处理程序 import os,timedef getip(filepath):
- 1.分包背景这里首先介绍下MultiDex的产生背景。当Android系统安装一个应用的时候,有一步是对Dex进行优化,这个过程有一个专门的
- 在使用 peewee 框架时,默认是不会出现日志消息的。from peewee import Model, CharField, DateT
- 本文实例讲述了Python编程中的反模式。分享给大家供大家参考。具体分析如下:Python是时下最热门的编程语言之一了。简洁而富有表达力的语
- 0、前言在python2.7及以上的版本,str.format()的方式为格式化提供了非常大的便利。与之前的%型格式化字符串相比,他显得更为
- poplib模块接收邮件python的poplib模块是用来从pop3收取邮件的,也可以说它是处理邮件的第一步。POP3协议并不复杂,它也是
- 一、基本概念Reactive X中有几个核心的概念,先来简单介绍一下。1.1、Observable和Observer(可观察对象和观察者)首
- 本人之前写了一套基于unnitest框架的UI自动化框架,但是发现了pytest框架之后觉得unnitest太low,现在重头开始学pyte
- 当需要实现html页面部分模块截图并具有保存图片功能时,前台直接生成截图并下载会方便的多。多的不说,直接看代码首先我们需要引入2个js文件:
- Inserted 表中的行是触发器表中新行的副本。 语法 返回所有列 INSERT INTO [tableName] ([columnNam
- 本文实例讲述了PHP使用PHPexcel导入导出数据的方法。分享给大家供大家参考,具体如下:导入数据:<?phperror_repor
- 关于Event:mysql5.1版本开始引进event概念。event既“时间触发器”,与triggers的事件触发不同,event类似与l
- 1.客户端的主页面:<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"
- 01、文件操作文件是操作系统提供给用户/应用程序操作硬盘的一个虚拟的概念/接口用户/应用程序可以通过文件将数据永久保存在硬盘中用户/应用程序
- 前言:array数组要转换成矩阵(matrix)数据类型才能进行一系列的线性运算。matrix类型也有时候要转换成array数组。代码:1.
- 例如:JSON字符串:var str1 = '{ "name": "cxh", "
- 在项目中遇到需要支持上传gif图片,并把其分解的帧图片一次展示给用户。话不多说直接上代码分解gif图片需要使用libgif-js这个库!1.
- 更新,最近在学unix环境编程,了解一下进程的创建过程,用最原始的方式实现了一个ssh命令的执行。#coding=utf8''
- python代码运行助手是能在网页上运行python语言的工具。因为python的运行环境在很多教程里都是用dos的,黑乎乎的界面看的有点简
- 前言有时候我们需要把图片填充成某个数字的整数倍才能送进模型。例如,有些模型下采样倍率是8倍,或者16倍,那么输入的长和高就分别应该是8或16