admin 管理员组

文章数量: 1184232


2024年5月18日发(作者:html5canvasarc方法)

科学之友 Friend of Science Amateurs 2010年07月 

M icrosoft Access数据库的 

WE B 

应用中的数据安全性研 

究 

陈榆,粱志胜 

(广西医科大学,广西南宁530021) 

摘要:文章从WEB系统中由数据库本身所带来的安全隐患入手,进而分析Access数 

据库相关的数据加密技术(如MD5加密算法、DES算法)及其在WEB系统中保护数 

据的具体应用,最后分析通过特殊处理,杜绝WEB应用中的部分安全隐患的相关技术, 

供同行参考。 

关键词:MicrosoftAccess;数据库;WEB应用;数据安全性研究 

中图分类号:TP393 文献标识码:A 文章编号:1000—8136(2010)21—0003—03 

1 前言 

3.1基于C#的MD5数据加密算法 

Microsoft Access是微软公司于1994年推出的以标准JET 

3.1.1 MD5算法介绍 

为引擎的桌面型数据库系统。它具有界面友好,易学易用,开 

MD5的全称是Message Digest Algorithm MD5(中文名为 

发简单,接口灵活等特点,是典型的新一代数据管理和信息系 

消息摘要算法第五版),为计算机安全领域广泛使用的一种散列 

统开发工具,其以功能全面、程序设计方便等特点得到广泛应 

函数,用以提供消息的完整性保护。该算法的文件号为RFC 

用。与微软公司所开发的其他数据库产品如Visual FoxPro、SQL 

1321(R.Rivest,MIT Laboratory for Computer Science and RSA 

Server等相比不够强大,它仍具有一定的独特的优势,其提供 

Data Security Inc.April 1992),该算法以512位分组来处理输入 

了更强大的数据组织、用户管理、安全检查等功能。在一个工 

的信息,且每一分组又被划分为16个32位子分组,经过了一 

作组级别的网络环境中,使用Access开发的多用户数据库管理 

系列的处理后,算法的输出由一四个32位分组组成,将这四个 

系统具有传统的XBASE数据库系统所无法比拟的客户服务器 

32位分组级联后将生成一个128位散列值。 

(Client/Server)结构和相应的数据库安全机制,因此,在很多 

3.1.2 MD5算法在Access项目中的应用范围 

EWB、桌面存储等领域得到了广泛的应用,但由于Access只是 

由于MD5算法的不可逆性,目前尚无可靠的破解方式,经 

属于文件型的小型数据库系统,存储方式过于单一,在存储大 

过MD5算法加密的字符串将无法通过一定的解密算法将其还 

量数据时I生能出现瓶颈,特别是它的安全性能方面,使得其在 

原为原文,所以一般在具体应用中,均使用MD5对密码字符串 

许多方面的应用受到了限制。本文就Microsoft Access数据库的 

等不需要明文显示的字符或数据进行加密。 

EWB应用中的数据安全性进行研究,仅供同行参考。 

3.1.3加密算法MD5的C#代码实现 

2 WEB系统中由数据库本身所带来的安全隐患 

微软在.Net中集成了MD5算法,我们可以通过初始化系统命名 

空间System.Securiyt.Cryptography中的MD5CryptoServiceProvider 

在Access的WEB(包括asp、asp.net、php、jsp等环境) 

类的实例,并调用ComputeHash方法将字符串进行加密,封装 

系统应用中,当攻击者通过各种渠道获取或者猜到Access数据 

的代码如下(注:需引处Sys ̄m及Sys ̄m.Security.Cryptography 

库的存储路径和数据库名时,如未对Access数据库文件进行特 

命名空间): 

殊处理。恶意攻击者将可以通过WEB方式访问并将数据库下 

///<summary> 

载到本地。而由于Access本身的诸多缺陷,如Access数据库 

///MD5加密 

的解密隐患、由缺省用户Admin用户所引发的安全漏洞、工作 

///</summary> 

组信息文件带来的安全隐患等,将会导致数据库中的敏感数据 

///<param name= strlN >输入字符串</param> 

(如单位的财务数据、管理员的帐户密码或其他隐私数据)不 

/I/<returns></retums> 

安全。 

public string MD5Encrypt(string strIN) 

3 Access数据库相关的数据加密技术及应用 

{ 

数据加密又称密码学,它是指通过特定的加密算法和指定 

byte[]tmpByte; 

的加密密钥将明文数据转变为不能被正常解读的密文,而解密 

MD5 md5:new MD5CryptoServieeProvider0; 

则是通过与加密算法所配套的解密算法和加密时所指定的密钥 

tmpByte 

将不可解读的密文恢复为可正常阅读的明文。数据加密在当前 

md5.ComputeHash(GetKeyByteArray(getstrlN(strlN))); 

仍是计算机系统对信息进行自然保护的一种最可靠的方法。通 

md5.Clear(); 

过数据加密技术对敏感信息进行加密,实现信息的隐蔽,从而 

return GetStringValue(tmpByte); 

增加重要信息的安全性。 

} 

本文将以Asp.net作为平台,介绍MD5加密算法及DES 

private stirng GetStringValue(byte[】Byte) 

算法在WEB系统中保护数据的具体应用。 

{ 

3一 

科学之友 Friend of Science Amateurs 2010年07月 

stringtmpStri・ ng ; 

if(this.isReturnNum:=false) 

{ 

System.Text.ASCIIEncoding Asc=new 

System.Text.ASCIIEncoding(); 

tmpString Asc.GetString(Byte); 

} 

else 

{ 

int iCounter; 

for(iCounter=0:iCounter<Byte.Length; 

iCounter++) 

{ 

tmpString=tmpString 

Byte[iCounter].ToString(); 

} 

} 

returntmpString; 

) 

3.1.4 MD5算法的应用实例 

用户在设置密码时,程序通过调用MD5算法,将用户密码 

加密,并将已经加密的数据保存进数据库的密码字段,C#示 

例代码: 

string username= 用户名 : 

string password:MD5Encrypt( 用户输入的密码 ); 

System.Data.OleDb.OleDbConnection conn:new 

System.Data.OleDb.OleDbConnection( Access连接字符串 ); 

conn.Open(); 

System.Data.OleDb.OleDbCommand cmd=new 

System.Data.OleDb.OleDbCommand( insert into表名(用户字 

段,密码字段)values(~+usemame+ ,~+password+ ) ,corm); 

cmd.ExecuteNonQuery(); 

待需要验证密码时,通过将用户输入的明文密码进行MD5 

加密,再和数据库中相应记录的密码字段中的字符串进行比较, 

如两值相等,则可判断密码正确,示例代码如下: 

//用户输入的密码可通过Request.Form[ 密码框Name属 

性 1等方式获取 

string pwd= 用户输入的密码 ; 

//通过数据库连接,查询所获取的密码段 

if(MD5Encrypt(pwd)一 从数据库字段中读取的密码值 ) 

{ 

//密码正确所执行的代码段 

) 

else 

{ 

//密码错误时所执行的代码段 

} 

当然,也可以通过直接将用户输人的密码MD5加密以后. 

直接与数据库数据进行比对。 

3.2基于C#的DES数据加密算法 

3.2.1 DES算法简介 

数据加密算法(Data Encryption Algorithm,DEA)的数据 

加密标准(Data Encryption Standard,DES)是规范的描述,它 

出自IBM的研究工作,在1977年被美国政府正式采纳。它是 

种对称加密算法,是目前使用最广泛的密钥系统之一。 

DES使用一个56位的密钥以及附加的8位奇偶校验位产生 

4一 

最大64位的分组大小。这是一个迭代的分组密码,使用称为 

Feistel的技术,其中将加密的文本块分成两半。使用子密钥对 

其中一半应用循环功能,然后将输出与另一半进行异或运算; 

接着交换这两半文本块,这一过程会持续下去,但在最后一个 

循环时不对文本块进行交换。DES使用了l6个循环,使用异或、 

置换、代换、移位操作四种基本运算。 

3.2.2 DES算法的在Access项目中的应用 

由于DES算法可以通过密钥进行解密,所以该算法在项目 

应用过程中,常被使用作为隐私数据的保护。使用该算法以后, 

被加密的数据将变成不可解读的字符串,在数据库其他安全措 

施无效的情况下,也可以保护数据库中的数据免于被恶意攻击 

者解析。 

3.2.3 DES加密算法的C#实现 

///<summary> 

IIIDES加密 

///</summary> 

///<paramname= encryptString >被加密的字符 ̄</param> 

///<par-am name= key >密钥</param> 

///<returns></returns> 

public stirng DesEncrypt(string encryptString,string key) 

{ 

byte[】keyBytes= 

System.Text.Encoding.UTF8.GetBytes(key.Substring(0,8)); 

byte[】keylV=keyBytes; 

byte[】inputByteArray 

System.Text.Encoding.UTF8.GetBytes(encryptString); 

System.Security.Cryptography.DESCryptoServiceProvider 

provider=new 

System.Security.Cryptography.DESCryptoServiceProvider0; 

System.IO.MemoryStream mStream new 

System.IO.MemoryStream0; 

System.Security.Cryptography.CryptoStrearn cStream 

new System.Securiyt.Cryptography.CryptoStream(mStream, 

provider.CreateEncryptor(keyBytes,keyrv3,CryptoStreamMode.Writ e); 

cStream.Write(inputByteArray,0, 

inputByteArray.Length); 

cStream.FlushFinalBlock0; 

return Convert.ToBase64String(mStream.ToArray0); 

} 

3.2.4 DES解密算法的C#实现 

///<summary> 

///DES解密 

///</summary> 

///<paramname= decryptSlring >需解密的字符串 paIarIl>’ 

///<param name= key >密钥</param> 

///<returns></retums> 

public static stirng DesDecrypt(string decryptString,string 

key) 

{ 

byte[]keyBytes 

Encoding.UTF8.GetBytes(key.Substring(0,8)); 

byte[】keyIV:keyBytes; 

byte[】inputByteArray 

Convetr.FromBase64String(decryptString); 

System.Security.Cryptography.DESCryptoServicePtovider 

provider=new 

科学之友 Friend of Science Amateurs 2010年07月 

System.Security.Cryptography.DESCryptoServiceProvider0; 

System.IO.MemoryStream mStream new 

方式将数据库下载至本地,这样,就算数据库路径被获取,攻 

击方也无法获得数据库并获得其中的数据。 

4.3使用oDBC数据源 

System.IO.MemoryStream0; 

System.Security.Cryptography.CryptoStream cStream 

new System.Security.Cryptography.CryptoStrearn(mStream, 

provider.CreateI)ecryptor(keyBytes,keylV),CryptoStreamMode.Wriet); 

cStream.Write(inputByteArray,0, 

通过使用ODBC数据源,将数据库的真正路径进行隐藏以 

后,哪怕攻击方通过其他手段获取到程序代码,也无法获知数 

据库真正位置,因此,可杜绝数据库攻击方接触数据库。 

4.4加强应用程序的安全性,编译并混淆应用程序,并加密重 

要数据 

inputByteArray.Length); 

cStream.FlushFinalBlock0; 

return Encoding.UTF8.GetString(mStream.ToArray0); 

) 

3.2.5 DES算法的应用实例 

DES可用于加密隐私数据,如客户的地址、电话等信息。 

在数据入库时,通过调用DesEncrypt方法将数据进行加密: 

string str=DesEncrypt( 被加密的字符串 , 指定的密钥 ); 

然后将加密后的数据保存进数据库,在解密时,通过调用 

DesDecrypt方法进行解密码,然后在程序中输出: 

stirng str=DesDecrypt( 被解密的字符串 , 加密时使用的 

的密钥 ); 

Response.Write(str); 

由于WEB应用程序多属于解释性,有的甚至是直接开放 

源代码,而源代码的安全性对于数据安全至关重要。对重要数 

据进行加密,对管理员帐号及用户登录相关的密码进行MD5 

不可逆加密,对普通的用户数据使用DES算法进行加密,通过 

这样的处理,在前文所述解决方案失效,数据库被攻击者下载 

时,将可减低数据被恶意获取的机率。 

5结束语 

综上所述,Access数据库作为网站后台数据库,可以很方 

便的调试,对于数据量比较少的数据情况下,不失为微机平台 

上一个优秀的数据库管理系统。在工作组级或部门级的数据库 

应用领域,采用Access开发的数据库系统将会真正实现以往只 

有用大型数据库管理系统如Oracle等才能开发出的客户/服务 

器模式的数据库应用程序。且Access数据库的敏感数据经随机 

加密后,可大大增强其安全性。目前,我国对Access的应用起 

步较晚,相关的技术资料也比较缺乏,这在一定程度上制约了 

Access这样一个优秀的数据库产品的应用。为此,应需进一步 

加快国内用户对Access数据库的认识、了解和使用,以期在国 

内微机平台上出现更多的用Access开发的数据库产品。 

参考文献 

需要注意的是,当解密的密钥不对时,系统将抛出异常, 

所以,请先进行异常处理。 

4通过特殊处理,杜绝WEB应用中的部分安全隐患 

Access数据库虽然存在较多安全性问题,但是如果杜绝数 

据被下载,那些安全问题将不会使数据库的数据安全受到威胁, 

在WEB应用中,可以通过以下方法,减少恶意攻击者接触数 

据库的机会: 

4.1非常规命名 

防止数据库被找到的方法之一就是为Access数据库起一个 

复杂的非常规性的名字,如在文件中加入特别字符,比如#、 

l李楠、张世星.Access数据库的安全性分析[J].信息技术, 

2007_31(2) 

@等特殊符号,并将其放置于较复杂的目录结构下。 

4.2更改数据库文件扩展名 

通过更改数据库的扩展名,让攻击者无法通过WEB方式 

下载数据库。将数据库名扩展名更改为WEB SERVER不能解 

析或是对数据库指定特殊的解析程序,让攻击者无法通过WEB 

2侯思倩.Access数据库系统安全性分析及其防范对策[J].中 

小企业管理与科技,2009(28) 

3李德郎.Access数据库的安全与应用[J].电脑学习,2008(2) 

4陆北江.基于web的Access数据库管理系统配置和程序优化 

[J].甘肃科技,2008(14) 

soft Access Database is Used is Studied

The Data Securi ̄ .in WEB 0f Micro

Chen Yu Liang Zhisheng 

Abstract:The potential safety hazard brought by database itself from WEB sy ̄em of the article is started with,and then analyse the data 

encryption(for instance,MD5 encrypts algorithms,DES algorithm)that Access daabaste is correlated with and concrete application 

protectng the datia in WEB system,Analyse finally that passes special—purpose processing,relevant technology of some potential safety 

hazards while stopping WEB using,for counterpart’S reference. 

Key words:microsoft Access;database;WEB application;the securiy of the data itS studied 

5一 


本文标签: 数据库 数据 密码