期刊库

教育   经济   科技   财会   管理   
医学   法学   文史   工业   建筑   
农学   水利   计算机   更多>>
 首 页    论文大全   论文精品    学术答疑    论文检测    出书咨询    服务流程    诚信通道    关于我们 

在VB下Access数据库密码的安全设置

人气指数: 发布时间:2011-02-18 09:39  来源:http://www.zgqkk.com  作者: 中国期刊库
分享到:

 

作者:宁德琼

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

    0 引言 
    Access 数据库作为微软推出的以标准JET为引擎的桌面型数据库系统,它界面友好、操作简单,是开发中小型数据库应用系统的常用平台,以其功能全面、程序设计方便等特点得到了广泛应用。但是随着Access数据库的广泛应用,对其安全性的需求也越来越高,而数据库的安全主要体现在数据的安全传送与安全存储,而数据的传送与存储大多数都是通过对数据本身的加密来实现的;所以,加密和解密问题也就成为Access数据库安全的首要问题。
    1 Access密码的安全隐患
    1.1 Access 数据库的存储隐患 Access 数据库的安全隐患第一就是密码的保存问题,将密码放在程序中和文件中,如果获得或者猜到Access据库的存储路径和数据库名,则该数据库就可以被下载到本地[1]。例如:对于校园网上的一个图书查询的Access数据库,人们一般命名为book.mdb、Library而存储的路径一般为        “URL/database”或干脆放在根目录(“URL/”)下。这样,只要在浏览器地址栏中敲入地址:        “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.

    期刊库(http://www.zgqkk.com),是一个专门从事期刊推广、投稿辅导的网站。
      本站提供如何投稿辅导,寻求投稿辅导合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级投稿辅导/国家级投稿辅导/核心期刊投稿辅导//职称投稿辅导。


      【免责声明】本文仅代表作者本人观点,与投稿辅导_期刊发表_中国期刊库专业期刊网站无关。投稿辅导_期刊发表_中国期刊库专业期刊网站站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。

     
    QQ在线咨询
    投稿辅导热线:
    180-1501-6272
    微信号咨询:
    fabiaoba-com
    咨询电话:18015016272 投稿邮箱:zgqkk365#126.com(#换成@)
    本站郑重声明:文章只代表作者观点, 并不意味着本站认同。所载文章、数据仅供参考,使用前请核实,风险自负。
    部分作品系转载,版权归原作者或相应的机构   若某篇作品侵犯您的权利,请来信告知.版权:周口博闻教育咨询有限公司 
    Copyright © 2005-2023 . 期刊库 版权所有