2023年12月11日发(作者:)
DArfABASE AND INFORMAT10N MANAGEMENT 数据库与信息管理 MD5在数据库中实现数据完整性校验 张兴竹。钱林红 (文山学院,文山663000) 摘要:数据库是信息系统中最重要的资源,数据库的安全将直接影响信息系统的安全,一旦数据库中的数据被非 法篡改,将对整个信息系统构成不可弥补的破坏。对数据库中的数据进行完整性校验非常必要,采用MD5算法实 现数据完整性校验,是一种方便有效的方法。 关键词:MD5;完整性;数据库加密 Achieve Data Integrity Valid in Database Using MD5 ZI-IANG Xill ̄U,QIAN l,lnhq ̄ag (Wenshan University,Wenshan 663000) Abstract:Database is the vital resource of information system,its security will affect the whole system,once data is distort— ed,the information system will be destroyed unrecoverable.It’S necessary to cheek the integrity of data,using MD5 algo- rithm in data integrity valid is an convenient and effeeti ̄ e method. Key words:MD5;integrity;database encryption 1 引言 录使用不同密码加密。工作密钥由信息系统的加密密钥进行 随着计算机应用技术的飞速发展,信息系统的使用已经 保护,信息系统的密钥称为主密钥,是整个管理系统的核心; 成为学校、企业、金融机构、政府等部门现代化的重要标志。 信息系统密钥的数量有限,要使用信息系统首先要获得使用 数据库存储着整个系统的重要资料,其中的数据如果被篡改, 权限,这些限制使得破译密钥的难度大大提高。 而使用系统的人却不知道,这将是一种无法弥补的灾难,这 3.1对数据库中的字段进行MD5加密 种灾难的后果是难以想象的,在数据库中引入数据完整性校 数据库中完整性校验的粒度可以有3种:表、记录和数 验是对数据的安全保障。使用MD5消息摘要算法可以有效防 据项。在此以数据项的完整性校验为例,在表中增加一个数 止这种灾难的发生。 据字段用来存放MD5值。需要进行数据完整性校验的字段按 2数据库加密和MD5算法 照一定的秩序做连接运算得到一个新的字符串,将该字符串 2.1数据库加密 进行MD5运算得到第一个MD5—1消息摘要。 数据库是整个信息系统数据的集合,其数据的存储、管 MD5加密算法存在碰撞问题,加之MD5可以被破解,目 理和使用都有自身特点,数据库存储数据量大、存储时间长 前普遍采用的方法有暴力破解及字典破解,如果被破解成功, 并且是信息系统经常访问的资源,因此数据库加密和解密时 攻击者就知道是用那些字段进行MD5运算,从而可以篡改数 速度必须足够快。数据完整性校验时必须保证数据不被破坏, 据库中的数据。为了增加安全性和校验强度需要对加密方式 其过程中也不能影响整个系统的正常使用。兼顾速度的同时 作进行进一步调整。 又要保证加密算法的强度,在此选用MD5加密算法完成对数 将MD5—1值与工作密钥进行字符串联接,得到新的字符 据的加密认证。 串,再对该字符串进行第二次MD5运算得到结果存人数据库 2.2 MD5算法描述 相应字段中。如“test”经过第一次MD5加密后的密码为 MD5算法是在20世纪90年代初发明的,经MD2、MD3 “098f6bcd46 21d373eade4e832627b4f6”如果工作密钥为“ad~ 和MD4发展而来。MD5将任意长度的信息流变换成一个 arin;’变换后的字符串为“eade4e83262764f 6098f6bcd4621d37 128bit的数,并且它是一个不可逆的加密算法。任何一个数 3admin”,将第二次MD5运算后的结果“aeee42bbb3f9079a3e 据,无论是长数据或短数据,也不管是何种类型的数据,都 97be5e189c666c”存人数据库中,该MD5值用以完整性校验。 有且只有一个独一无二的MD5值。只要数据本身发生变化, 3.2对数据进行完整性校验 它的MD5值也会发生改变,发生碰撞的几率很小,也就是两 数据库中存放的工作密钥一般是经过加密的,使用主密 个不同源数据的MD5值相同的情况微乎其微。因此,可以通 钥解密出工作密钥,按照上述方法做两次MD5运算,将结果 过对比计算得到的MD5值和存储在数据库中的MD5值,来校 与数据库中存放的MD5校验值进行对比,如果得到的结果与 验数据是否被篡改过。 数据库中的记录不一致,则说明数据库中数据被非法篡改过。 3 数据完整性 4 结语 为了保证信息系统和数据库的安全,密钥管理通常采用 作者简介:张兴竹(1982一),女,助教,研究方向:计算机 层次化管理方式,用于数据加密的工作密钥需要动态产生, 应用。 实现一次一密,也就是一条记录使用一个密钥加密,不同记 收稿日期:2010—06—21 —53— 电脑编程技巧与维护 在信息系统中,数据加密技术越来越重要。MD5算法由 于其强大的单向加密功能可以用于数据完整性校验。在信息 系统中利用MD5算法实现重要信息加密认证,在实际应用中, MD5算法可以根据不同的情况进行不同的变换,略微改变 MD5后的结果,如更换字符次序,加上其他字符,再做一次 MD5运算。在不知道加密变换的情况下,使攻击者无从下手。 进行这些复杂的变换运算需要花费很多额外的系统开销,然 参考文献 [1]孙睿,张铁头.SQL Server数据库的数据完整性控制【J]. 甘肃科技,2006,f7). 【2】Rivest R L.The MD5 message2digest Mgofit hm【C】偬e— quest for Comment S(RFC 1320).1992. [3]王津涛,覃尚毅,王冬梅.基于MD5的迭代冗余加密算 而为了保证数据的安全性,再多的开销也是有必要的。 (上接第49页) 语言的主要功能就是同各种数据库建立联系,进行沟通。该 数据库具有以下特点:可信任的,高效的,智能的。 表1,表2分别标示出了网络课程中的关键字。表1标示 出了网络课程中的学生编号、课程编号、学生学号、学生申 请网络,学生学习这门课程是否毕业,学生获得最终成绩; 表2标示出了网络课程学生参与网络课程学习的时候积极参 与在线测试,即参与在线测试的试卷编号是多少、课程编号、 试卷名称、试卷状态。 表1学生选课表(stucour) 字段名称 数据类型 是否为空 字段描述 id Int IDENTITY(1,1) Not null 编号 stucourid Int Not null 课程编号 stunum Varchat(20) Not null 学生学号 stushenpi Int Not null 学生申请标志 stugradu Int Null 学生结业标志 stugrade Int Null 学生最后成绩 PRIMARY KEY:id 外键:stucourid 表2试题总表(Paper) 字段名称 数据类型 否为空 字段描述 PaperlD lnt IDENTITY(1,1) Not null 试卷编号 Cou ̄eID Int Not null 课程编号 PaperName Varchar(2o) Not null 试卷名称 PaperState Int Not null 试卷状态 PRIMARY KEY:id 外键:Cou ̄elD 约束:无 说明:PaperState表示试卷是否可用 4 数据库与动态网站的连接 SQL Server数据库是目前最流行的关系型数据库系统之 一,由于对服务器的要求较低,因此也是最适合大众安装并 上机实践的完整的数据库管理系统。数据库技术与网站的结 合是当今Web技术的一个热点。有了数据库的支持,可以扩 展网页的功能,可以方便地设计出交互式页面,构造功能更 加强大的后台管理系统,可以为网站的更新、维护提供极大 的方便。数据库与网络课程链接的关键代码如下: <% dim LASTIP.NEWIP ——54—— 法【JJ.计算机工程与设计,2007,28(1):41—242. set rs=server.CreateObiect(”ADODB.RecordSet”) Rs.Open’’Select from EC—counmrs”,conn,1,3 LASTIP=RS C LASTIP”1 NEWIP=REQUEST.servervariables(”REMOTE ADDR”) 1F CSTR(Month(RS(”DATEIt)))<>CSTR(Month (DATE()))THEN RS(”DATE”)=DATE() RS(”YESTERDAY”) =RS(”ToDAY”) RS BM0NTH”)=RS(tf M0NTH”) RS(t’M0NTH”)=0 RS T0DAY”)=0 RS(”TOTAL”) =RS(|t T0TAL”)+l RS(”T0DAY”)=RS f”T0DAY”)+l RS(”MONTH”) =RS(”MONTH”)+l RS LASTIP”1 =NEWIP RS.Update session IsFirst”)=true ELSE IF CSTR(Day(RS(”DATE”))) ◇CSTR(Day (DATE()))THEN RS DATE”)=DATE() RS(”YESTERDAY”)=RS(”TODAY”) RS T0DAY”1=0 RS(”TOTAL”) =RS(”T0TAL”)+1 RS(”TODAY”)=RS(”ToDAY”)+l RS(”MONTH”) =RS(”MONTH”)+1 RS LASTJP”1=NEWIP RS.Update session f”IsFirst”)=true END END 5 结语 网络课程是开放的,在目前网络课程的运行过程中,会 产生很多很有价值的教学资源,这些教学资源又可以转化成 教师的资源,成为网络课程的一部分。对SQL进行设计的网 络课程在实际教育教学中具有一定的应用价值。 参考文献 [1】潘蕾,徐汀荣.基于Web服务的SQL数据库访问中间件的 设计与实现.计算机与现代化,2006. [2]刘卫宏.SQL Server200实用教程. 【3]催群法,祝红涛,赵喜来.SQL Server 2008从入门到精通 伸文版).


发布评论