关于MD5加密


MD5的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。比如,在UNIX下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构如:
MD5 (tanajiya.tar.gz) = 0ca175b9c0f726a831d895e269332461
这就是tanajiya.tar.gz文件的数字签名。MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。为了让读者朋友对MD5的应用有个直观的认识,笔者以一个比方和一个实例来简要描述一下其工作过程:
大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为公安机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的“数字指纹”,如果任何人对文件名做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。
我们常常在某些软件下载站点的某软件信息中看到其MD5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的软件(如Windows MD5 Check等)做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。利用MD5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。
MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现(两个MD5值不相同)。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。
MD5还广泛用于操作系统的登陆认证上,如Unix、各类BSD系统登录密码、数字签名等诸多方。如在UNIX系统中用户的密码是以MD5(或其它类似的算法)经Hash运算后存储在文件系统中。当用户登录的时候,系统把用户输入的密码进行MD5 Hash运算,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这可以避免用户的密码被具有系统管理员权限的用户知道。MD5将任意长度的“字节串”映射为一个128bit的大整数,并且是通过该128bit反推原始字符串是困难的,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。所以,要遇到了md5密码的问题,比较好的办法是:你可以用这个系统中的md5()函数重新设一个密码,如admin,把生成的一串密码的Hash值覆盖原来的Hash值就行了。
正是因为这个原因,现在被黑客使用最多的一种破译密码的方法就是一种被称为"跑字典"的方法。有两种方法得到字典,一种是日常搜集的用做密码的字符串表,另一种是用排列组合方法生成的,先用MD5程序计算出这些字典项的MD5值,然后再用目标的MD5值在这个字典中检索。我们假设密码的最大长度为8位字节(8 Bytes),同时密码只能是字母和数字,共26+26+10=62个字符,排列组合出的字典的项数则是P(62,1)+P(62,2)….+P(62,8),那也已经是一个很天文的数字了,存储这个字典就需要TB级的磁盘阵列,而且这种方法还有一个前提,就是能获得目标账户的密码MD5值的情况下才可以。这种加密技术被广泛的应用于UNIX系统中,这也是为什么UNIX系统比一般操作系统更为坚固一个重要原因。

更多相关文章
  • 数据安全一——MD5加密
    说到数据安全,不得不提数据加密,其中MD5(Message Digest Algorithm 5,中文名为消息摘要算法第五版)是应用广泛的一种.数据加密范围很广,本文仅谈下MD5在数据库中的部分应用.MD5的介绍和算法这里不再赘述,可以参考:https://en.wikipedia.org/wiki ...
  • IOS中把字符串加密/IOS中怎么样MD5加密/IOS中NSString分类的实现
    看完过后,你会学到: 1学习IOS开发中的分类实现, 2以及类方法的书写, 3以及字符串的MD5加密/解密. ---------------------------wolfhous------------------ [1]新建工程,新建分类 [2]分类的命名方式以及类的选择 [3]书写NSStri ...
  • js实现MD5加密
    js实现MD5加密实例:<!DOCTYPE HTML> <html> <head> <!--Company:dingzhaoqiang 保留一切权利--> <meta charset="utf-8"> <title ...
  • [摘 要]ASP中使用MD5加密字符是比较典型的ASP程序模块,我们在在用户注册时,系统给注册的密码进行了MD5的加密. 下载过动网论坛.或者其他注册程序的用户知道,在用户注册时,系统给注册的密码进行了MD5的加密.介绍使用方法:在需要使用MD5加密时,调用MD5.asp文件:<!--#inc ...
  • SVN配置1.安装前必备获取 Subversion 服务器程序 到官方网站 http://subversion.tigris.org/    我下的是CollabNetSubversion-server-1.6.5-6.win32.exe获取 TortoiseSVN 客户端程序  http://to ...
  •         说到大名鼎鼎的MD5算法,稍有经验的程序员都应该听说过,特别是做Web应用程序的开发人员.那什么是MD5呢?MD5是现在使用最广泛的一种哈希算法,它的作用就是如果哪一天你的网站被人攻破,数据被人窃取,你也不用担心用户信息泄露,因为攻击者看到的所有密码都只是一些没有意义的字符串而已(当 ...
  • 0 2 项目中用的的加密算法,因为要和安卓版的适配,中间遇到许多麻烦.  MD5算法和DES算法是常见的两种加密算法.  MD5:MD5是一种不可逆的加密算法,按我的理解,所谓不可逆,就是不能解密,那么它有什么用的,它的用处大了,大多数的登录功能都会使用到这种算法.后面根据我的项目经验来介绍.  D ...
  • packageendecrypt;importjava.io.UnsupportedEncodingException;importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmException;/***采用MD5加密 ...
  • MD5加密工具类整理: 1 package com.gzcivil.utils; 2 3 import java.io.UnsupportedEncodingException; 4 import java.security.MessageDigest; 5 import java.security ...
一周排行
  • CentOS6.6下Redis的安装配置需要gcc.c++环境,由于安装CentOS时候没有安装,所以这里需要安装此环境:1.下载redis,将其存放到/usr/local/soft下http://download. ...
  • 一.从一个例子开始 关于JVM的内存泄露,让我们从下面一个例子开始吧,大家来判断一下如果按照下面这种分配方式,会不会出现内存泄露呢? 1 import java.util.List; 2 import java.ut ...
  • Web服务器磁盘满故障深入解析
    ############################################# ...
  • Android 应用程序的结构src --源文件AndroidManifest.xml  --配置文件,说明应用程序的一些结构res --资源|--drawable(绘图资源)|--hdpi 高分辨率 ldpi低分辨 ...
  • 如果是 avast! 的标准防护误报了你希望运行的软件,建议您如此操作:复制被误报的文件的位置, 并点击 "没有操作"在 avast! 监控设置中, 设置 "标准防护", 在高 ...
  • 引自 PostgreSQL Server Programming-Second Edition page81:大部分时候,我们不需要快速的代码,而是能用的程序. remember that most of the t ...
  • 迷宫的最短路径问题 给定一个大小为 N×M 的迷宫.迷宫由通道和墙壁组成,每一步可以向邻接的上下左右四格的通道移动.请求出从起点到终点所需的最小步数.请注意,本题假定从起点一定可以移动到终点.限制条件;N, M ≤ ...
  • 在PowerShell中不存在文件和目录的概念,涉及文件和目录的操作总是转换为项(item)处理,即Get-Item.Get-ChildItem和Get-ItemProperty.在PowerShell中的dir命令 ...
  • 解决svnAuthorizationfailed错误
    解决svn Authorization failed错误  (2 21: ...
  • 80后都争当职场“变态族”    那些整天嘴上嘀咕“又要加班一星期啊”,“怎么这个项目有种永远都做不完的感觉”,或者经常眉头紧锁,把案台上的文件翻得乱七八糟,每天一副心情不好的样 子的员工,再喜欢在老板面前擦鞋,也不 ...