论文网首页|会计论文|管理论文|计算机论文|医药学|经济学论文|法学论文|社会学论文|文学论文|教育论文|理学论文|工学论文|艺术论文|哲学论文|文化论文|外语论文|论文格式
中国论文网

用户注册

设为首页

您现在的位置: 中国论文网 >> 计算机论文 >> 计算机应用论文 >> 正文 会员中心
 计算机应用论文   计算机理论论文   计算机网络论文   电子商务论文   软件工程论文   操作系统论文   通信技术论文
在VB下Access数据库密码的安全设置

摘要:本文从vb程序设计的角度探讨了access数据库密码的保存方式及密码本身加码、解码的安全问题,以确保数据的完整性和安全性。
关键词:vb access 密码

        0 引言 
        access 数据库作为微软推出的以标准jet为引擎的桌面型数据库系统,它界面友好、操作简单,是开发中小型数据库应用系统的常用平台,以其功能全面、程序设计方便等特点得到了广泛应用。但是随着access数据库的广泛应用,对其安全性的需求也越来越高,而数据库的安全主要体现在数据的安全传送与安全存储,而数据的传送与存储大多数都是通过对数据本身的加密来实现的;所以,加密和解密问题也就成为access数据库安全的首要问题。
        1 access密码的安全隐患
        1.1 access 数据库的存储隐患 access 数据库的安全隐患第一就是密码的保存问题,将密码放在程序中和文件中,如果获得或者猜到access据库的存储路径和数据库名,则该数据库就可以被下载到本地[1]。例如:对于校园网上的一个图书查询的access数据库,人们一般命名为book.mdb、library而存储的路径一般为        “url/database”或干脆放在根目录(“url/”)下。www.11665.Com这样,只要在浏览器地址栏中敲入地址:        “url/database/library.mdb”,就可以轻易地把slibrary.mdb下载到本地的机器中。
        1.2 access 数据库的解密隐患 access数据库的加密机制非常简单,所以即使数据库设置了密码,解密也很容易. 该数据库系统通过将用户输入的密码与某一固定密钥进行“异或”来形成一个加密串,并将其存储在*.mdb 文件中从地址“&h42”开始的区域内. 由于异或操作的特点是“经过两次异或就恢复原值”,因此,用这一密钥与*.mdb文件中的加密串进行第二次异或操作,就可以轻松地得到access数据库的密码.基于这种原理,可以很容易地编制出解密程序[2]。由此可见,无论是否设置了数据库密码,只要数据库被下载,其信息就没有任何安全性可言了。
        2 在vb中提高access 数据库安全性的方法
        在vb中,通过编程来解决数据库中密码的安全问题,通过vb中的api函数来将密码保存到注册表中,以实现用户合法性检验的方法;同时对密码进行加密和解密。
        2.1 利用api函数在注册表中进行密码操作 从以上分析密码存储的隐患来看,密码保存在程序和文件中,安全性能较差;如果考虑将密码存入注册表中,通过对注册表的操作,可以将密码随便放到注册表的什么地方;要想找到密码字符可谓大海捞针。
        vb为用户提供了4个用于注册表操作的函数savesetting、getsetting、getallsettings和deleteseting,使用这四个函数可以方便地操作注册表。通过函数getstring()将注册表项的值赋值给字符变量m,窗体装入程序段中的m= getsetting(hkey_current_user,”regdata\aa”,””)语句。当用户输入密码后进行核对,如果输入的密码与m中相同则为合法用户,登录成功。当窗体装入时调用getstring函数,在getstring函数中调用api函数regopenkey打开指定表项,打开指定表项后,调入函数regquerystringvalue,在regquerystringvalue函数中首先调用api函数regqueryvalueex hkey,以得到项值空间的大小;调用vb的string函数将变量ldatabufsize按其大小设为chr$(0);对所得键值去掉右侧空字符并将结果赋值给函数名为        regquerystringvalue,程序返回到它的调用之处,getstring函数操作完毕将键值赋给变量m,即可等到保存在注册表中的密码[3]。主要程序如下:


        function getstring(hkey as long, strpath as string, strvalue as string)
        dim ret
        regopenkey hkey, strpath, ret
        getstring = regquerystringvalue(ret, strvalue)
        regclosekey ret
        end function
        function regquerystringvalue(byval hkey as long, byval strvaluename as string) as string
        dim strstring as string
        regqueryvalueex hkey, strvaluename, 0, lvaluetype, byval 0, ldatabufsize
        strbuf = string(ldatabufsize, chr$(0))
        regqueryvalueex hkey, strvaluename, 0, 0, byval strbuf, ldatabufsize
        regquerystringvalue = left$(strbuf, instr(1, strbuf, chr$(0)) - 1)
        exit function
        2.2 在vb中对密码进行加密和解密 当然,为了保证密码的安全,除了考虑密码的存放方式外,另一方面就是对密码本身加密,得到一个加密的密码,将密码加密后存放起来就更安全了。对密码加密实际是将作为密码的字符从一种表现形式变为另一种表现形式的过程。其中一种方法是设置一个被称为“密钥”的字符或字符串,通过使用密钥对密码进行操作,将明码变成密码。在解密时再使用密钥对密码进行逆操作,密码就还原了。程序使用当前输入的密码作为密钥对输入的密码作加密操作,将加密后的密码存入文本文件password.txt。程序中使用ciphe过程和numericpassword函数对密码进行加密操作,其中cipher密钥。当然,密码加密后在使用时就要对它进行解密,它们的主要程序如下:
        private function numericpassword(byval password as string) as long
        dim value as long,ch as long, shift1 as long,shift2 as long
        dim i as integer, str_len as integer
        str_len = len(password)
        for i = 1 to str_len
        ch = asc(mid$(password, i, 1))
        value = value xor (ch * 2 ^ shift1)
        value = value xor (ch * 2 ^ shift2)
        shift1 = (shift1 + 7) mod 19
        shift2 = (shift2 + 13) mod 23
        next i
        numericpassword = value
        end function
        3 结束语
        通过对access数据库密码安全隐患进行分析,对密码的保存方式和密码本身的加密,防止数据库被下载和密码破解起到了一定的作用,道高一尺,魔高一丈,尽管人们想到种种办法来维护数据库安全,但是也总是不断发现漏洞。所以,为确保数据库的的安全,数据定期备份与恢复是必不可少的。


参考文献:
[1]林姿琼.关于asp+access数据库的安全问题[j].漳州师范学院学报.2005(3):33-37.
[2]张莲华.access数据库网络安全问题研究[j].湖北汽车工业学院学报.2006(12):56-58.
[3]姚巍.visual basic数据库开发从入门到精通[m].北京:人民邮电出版社.2006.

  • 上一个计算机论文:
  • 下一个计算机论文:
  •  作者:宁德琼 [标签: 数据库 密码 设置 ]
    姓 名: *
    E-mail:
    评 分: 1分 2分 3分 4分 5分
    评论内容:
    发表评论请遵守中国各项有关法律法规,评论内容只代表网友个人观点,与本网站立场无关。
    浅谈VB编程中网格控件的选用及使用方法
    基于Excel VBA的计算机理论知识无纸化考试系
    当前VB程序设计的教学改革研究
    VB编程中网格控件的选用及使用方法
    非Access数据库在VB中的编程及应用
    实现桌面地理信息系统ArcView和VB5应用程序
    VBA、Word和数据库的联合编程
    基于VB和XML的个人资料编辑器的实现
    VB5.0中数据库查询模块的实现
    浅析VB编程中网格控件的选用与使用分析
    VB108汽车销售系统
    用VB构建INTERNET的应用
    | 设为首页 | 加入收藏 | 联系我们 | 网站地图 | 手机版 | 论文发表

    Copyright 2006-2013 © 毕业论文网 All rights reserved 

     [中国免费论文网]  版权所有