随着Web数据库的应用越来越广泛,Web数据库的安全问题也日益突出,保障和加强数据库的安全性已成为目前必须要解决的问题。在Web数据库中,通常是对重要的用户口令采用MD5加密算法进行加密。

MD5加密算法在Web数据库中的应用

一、MD5加密算法简介

在现阶段存在两种加密方式:单向加密和双向加密。双向加密是将我们可以直接理解的明文数据加密为我们不可直接理解的密文数据,然后,在需要的时候,可以使用一定的算法将这些加密以后的密文解密为原来可以理解的明文。双向加密适合于隐秘通讯。而单向加密则只能对数据进行加密,也就是说,没有办法对加密以后的数据进行解密。这样做的优点在于:当用户创建一个新的账号或者密码时,其信息不是直接保存到数据库,而是经过一次加密以后再保存,这样,即使这些信息被泄露,也不能立即理解这些信息的真正含义。

MD5就是采用单向加密的加密算法。对于MD5加密算法而言,有两个特性是很重要的:

第一是任意两段明文数据,加密以后的密文不能是相同的;

第二是任意一段明文数据,经过加密以后,其结果必须永远是不变的。

前者的意思是不可能有任意两段明文文件加密以后得到相同的密文,后者的意思是如果我们加密特定的数据,得到的密文一定是相同的。

二、MD5加密算法在Web数据库中的应用

1、使用MD5加密算法加密WEB数据库中的用户密码

一般网站往往将用户的账号、密码等信息使用非加密的方式保存到数据库。比如账号使用类型为字符型,同样,密码也是采用字符类型。但是,如果打算采用MD5加密方式存储密码信息,就必须改变密码字段的类型为二进制方式,因为加密以后的输出是使用二进制数组的。

如果用户是在表单中名为password的文本框中输入密码,而在数据库中则用inpassword字段存放加密后的密码,常用加密方法为:

password=request.form("password")

inpassword=md5(password)

这样在数据库中存储的就是通过MD5加密算法加密后的用户名和口令。如果要进一步维护数据的安全性,还可采用重复加密,如:inpassword=md5(md5(password))。当然,在当前页面中需要包含用于实现MD5加密的文件md5.asp(此文件主要是MD5加密算法的实现过程)

2、使用MD5加密算法鉴别用户身份的合法性

由于用户名和密码是按照MD5加密算法加密以后保存在数据库中的,而MD5加密算法是单向加密算法,所以,不可能将加密以后的文件转为明文。这就出现一个问题,如果用户使用账号、密码登录,怎么知道用户提供的密码是否准确呢?因为任意一段明文数据,经过加密以后,其结果必须永远是不变的,所以,当用户登录的时候,系统把用户输入的密码计算成md5值,然后再去和保存在文件系统中的md5值进行比较,进而确定输入的密码是否正确。

通过这样的步骤,系统在并不知道用户密码的明码的情况下,就可以确定用户登录系统的合法性。这不但可以避免用户的密码被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。

采用MD5加密算法对用户密码进行加密处理,可以在一定程度上保障数据的安全性。

小知识之Web数据库

Web数据库属于深度Web(Deep Web)的一种资源形势,通常指在互联网中以Web查询接口方式访问的数据库资源,其结构是后台采用数据库管理系统存储数据信息,对外提供包含表单的Web页面作为访问接口,查询结果也以包含数据列表的Web页面形式返回给用户。