from:
http://www.tianyablog.com/blogger/post_show.asp?BlogID=736799&PostID=10094047
前些天给数据库加密才想到了解MD5,惟一学到的就是覆盖.呵呵
以下是搜索网上的资料
所谓MD5,即"Message- Digest Algorithm 5(信息-摘要算法)",它由MD2、MD3、MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著名的公钥加密算法标准RSA的第一设 计者R.Rivest于上个世纪90年代初开发出来的。MD5的最大作用在于,将不同格式的大容量文件信息在用数字签名软件来签署私人密钥前"压缩"成一 种保密的格式,关键之处在于——这种"压缩"是不可逆的。
为了让读者朋友对MD5的应用有个直观的认识,笔者以一个比方和一个实例来简要描述一下其工作过程:
大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为公安机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5就可以为任何文件(不管其大小、 格式、数量)产生一个同样独一无二的"数字指纹",如果任何人对文件做了任何改动,其MD5值也就是对应的"数字指纹"都会发生变化。
我们常常在某些软件下载站点的某软件信息中看到其MD5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的软件(如Windows MD5 Check等)做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。利用MD5算法来进行文件校验的方案被大量应用到软件下载站、论坛 数据库、系统文件安全等方面。
笔者上面提到的例子只是MD5的一个基本应用,实际上MD5还被用于加密解密技术上,如 Unix、各类BSD系统登录密码(在MD5诞生前采用的是DES加密算法,后因MD5安全性更高,DES被淘汰)、通信信息加密(如大家熟悉的即时通信 软件MyIM)、数字签名等诸多方面。
MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的 字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多 个,这有点象不存在反函数的数学函数。
MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被 “篡改”。举个例子,你将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内 容,你对这个文件重新计算MD5时就会发现(两个MD5值不相同)。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的 数字签名应用。
MD5还广泛用于加密和解密技术上,在很多操作系统中,用户的密码是以MD5值(或类似的其它算法)的方式保存的, 用户Login的时候,系统是把用户输入的密码计算成MD5值,然后再去和系统中保存的MD5值进行比较,而系统并不“知道”用户的密码是什么。
所以,要遇到了md5密码的问题,比较好的办法是:
你可以用这个系统中的md5()函数重新设一个密码,如admin,把生成的一串密码覆盖原来的就行了。
分享到:
相关推荐
人工智能和机器学习概述.md人工智能和机器学习概述.md人工智能和机器学习概述.md人工智能和机器学习概述.md人工智能和机器学习概述.md人工智能和机器学习概述.md人工智能和机器学习概述.md人工智能和机器学习概述.md...
MD5概述 有关更好/更完整的描述,请查阅 ,但这是MD5原理的重要摘要(不完整): MD5的状态以4x 32位字保存,通常用a , b , c , d 待散列的数据以64字节(或16x 32位字)块进行处理 对于每个块,有64个混合回合...
C概述.md
Hadoop概述&集群搭建.md
学习资料-Web前端概述.md学习资料-Web前端概述.md学习资料-Web前端概述.md学习资料-Web前端概述.md学习资料-Web前端概述.md学习资料-Web前端概述.md学习资料-Web前端概述.md学习资料-Web前端概述.md学习资料-Web前端...
01SpringMVC 概述.md
│ 8-MD5概述5 _* g* f: Y1 v* o4 H │ 9-MD5-工具类1 H6 x* t" K- z* B │ 10-登录功能-MD5密码加密' F4 `+ B( c' b5 I' ?7 a │ 11-注销功能9 z3 d8 y4 A0 l: p* n* @ │ 12-附录3.页面头信息9 ~7 f% A$ m' Y. J ...
1 软件工程—软件工程学概述.md
博文链接:https://marshal-r.iteye.com/blog/2088459
第1章概述.md
01-react概述.md
18.md 5个典型的JavaScript面试题(上) JavaScript 19.md 再来5个JavaScript面试题 JavaScript 20.md BAT web前端开发方向校招都考些什么? General 21.md Eleme 笔试题 General 22.md 一些JS题目的解答 ...
七. 数据库系统概述.md
关于MD5算法的概述,应该比较有用
第一章 java概述.md
python概述+数据类型.md
01 尚品甄选-项目概述.md
第一章 计算机系统概述.md
计算机网络概述课前自测.md
md5sum – 计算检验MD5效验码 md5sum命令采用MD5报文摘要算法(128位)计算和检查文件的校验和。一般来说,安装了Linux后,就会有md5sum这个工具,直接在命令行终端直接运行。 MD5算法常常被用来验证网络文件传输的...