以下是一篇关于WEB登录系统中MD5加密算法原理的

2013-04-28 01:19
导读:

以下是一篇关于WEB登录系统中MD5加密算法原理的实现及其改进的,欢迎浏览!

 

关键词:md5加密;密文;字符串

摘要:分析比较了中md5不同的改进算法,并给出了最后的结论。

中图分类号:tp311.1   文献标识码:a  文章编号:1007-9599 (2011)05-0000-01

php implementation of  md5 encryption algorithm in web login system

wang xiong1,li xuhui2,xu linhua3

1.china university of mining&technology,institute of computer science and technology,xuzhou  221116,china;2.the foreign language college of cumt,xuzhou  221116,china

abstract:md5 is an encryption algorithm often used in web applications.many websites have adopted md5 encryption in the login module.users’passwords are encrypted and stored in the database through it,to some extent,making an intruder not easy access to user log in privileges.this paper compares the different improvements in the md5 algorithm,and gives the final conclusion.

keywords:md5 encryption;ciphertext;string

一、引言

现阶段,存在两种加密方式:单向加密和双向加密。双向加密可以理解为将明文数据加密成我们一般人不能够直接理解的密文数据,然后通过解密方法还原成明文数据。此加密方式适用于电子商务等应用平台,因为我们需要向web站点提交网上银行密码,一方面我们不需要黑客“偷听”我们的交易密码,另一方面网站管理人员需要获取用户的密码用于完成交易。因此产生了双向加密。

md5采用的是单向加密方法,对于md5加密算法必须遵循的两个原则,第一个是加密后的密文不能和明文数据相同;第二是如果加密特定的数据,得到的密文必须是相同的,因此在验证用户输入的口令时,用户的入采用的也是单向算法,如果输入与存储的经加密后的口令相匹配,则输入的口令一定是正确的。

二、算法原理与实现

(一)md5加密php中的使用

php提供了多种加密算法,比如使用mcrypt加密数据,mcrypt是一个php可用的流行数据加密包,它提供了双向加密(即加密和解密)支持。使用mhash()库加密数据,函数mhash()为很多散列算法提供了支持,允许开发人员将校验和、消息摘要和各种其他数字签名集成到其php应用程序中。考虑到安全性,可以使用md5加密,md5全称是message-digest algorithm5,经由md2md3md4发展而来。md5()函数使用md5,它是一个第三方散列算法,可用于辨别用户身份,并标明用户对登录信息中所包含信息的认可。由于md5加密算法是单向方式,一次没有办法对使用md5()散列的数据进行逆散列。

(二)md5的不同变换算法

web中使用md5的初衷就是为了防止数据库中有用数据被盗取,但是不排除入侵者不仅拥有数据量巨大的数据字典,而且建立了很多md5原文、密文对照数据库,因此我们可以在网上找到破解md5的网站对md5加密后的密文进行解密。为了在最大程度上保护我们的账号安全,我们可以使用变换的md5算法,使现成的md5密文数据库无所作为。

1.循环md5

最简单的方法是对数据进行多次md5运算。自定义一个函数md5_1_2($data, $times = 32),它接收$data$times两个形参,第一个是要加密的数据,第二个是要重复的次数。

3.密文分割md5

用户的密码是一串不确定的字符串,但只要经过一次md5加密运算后,就会得到一个由32位字符组成的字符串,我们可以再针对这个定长的字符串就行修改变换。基本思想是:把这段密文分割成若干段,对每一段进行加密,把每一段进行合并,再进行一次md5加密。也就是说前后共进行了三类md5加密运算,得到的仍然是32位的密文。

5.其他的一些加密变换算法

还有其他一些比较实用简单的算法,比如在原来数据的头部、尾部或者头部尾部一起附加某一字符串;或者将原数据的小写字母变成大写,将原数据的字母排列顺序调转。总之,md5变换算法是数之不尽的,我们可以发挥我们的想象力去创造。

三、结束语

本文简单介绍了php系统中的一些加密算法,并针对php中的md5加密提出一些改进算法。在实际应用中,md5算法可以根据不同的情况进行变换,让入侵者即使得到密文也不能轻易的破解。在网络应用程序应用越来越广泛的背景下,用户的数据安全性问题是各个it公司不能轻视的,如何形成可靠的加密体制,也是他们所追求的。

参考文献:

[1]苟玮,姚旺生,郭福亮.md5算法在php+mysql中的应用.海军工程大学

[2]李淑静,胡天麟.基于php的互联网身份认证系统的原理及实现.四川绵阳电业局通信自动化公司

[3]宁洁琪.基于md5二重加密的安全技术探讨.广西二轻成人中专学校

王雄1,李旭辉1,许琳华21.中国矿业大学计算机科学与技术学院,徐州 2211162.中国矿业大学外国语言文化学院,徐州 221116

    上一篇:基于PHPphp+mysql图书管理系统的设计与实现的毕业 下一篇:没有了