MD5(转自百度百科)
Message Digest Algorithm MD5(中文名为消息摘要算法第
五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT
Laboratory for Computer Science and RSA Data Security Inc. April 1992)
算法的应用
对信息产生摘要
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值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可
以确定用户登录系统的合法性。这可以避免用户的密码被具有系统管理员权限的用户知道。
分享到:
相关推荐
基于Python的百度百科爬虫 采用bkkey爬取百度百科词条,采用bktext,利用爬取的词条爬取内容 -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心...
javaSE笔记,方便查看,文档加代码和步骤解析,百度百科这样定义“软文”:“顾名思义,软文是相对于硬性广告而言,由企业的市场策划人员或广告公司的文案人员来负责撰写的‘文字广告’。与硬广告相比,软文之所以...
可以使用文件校验和如MD5或SHA来验证文件完整性,以及对上传文件进行病毒扫描。 此外,为了实现类似百度文库的搜索功能,我们需要建立索引系统。可以使用Apache Lucene这样的全文搜索引擎库,对文档内容进行索引和...
Log4j log for java(java的日志) 是java主流的日志框架,提供...详细介绍 参考百度百科: http://baike.baidu.com/link?url=FCidaDzCVSgeIl1Yw7CyufySJLQvd4n3QCusbnTTTxqdg1EYdg59Kd-Hm5gyCdkgNMaYQvmUVXMxxf3k2Pnwdq
MD5算法是一种消息摘要算法,输入任意长度的消息,输出128位消息摘要。SHA-1算法是一种安全哈希算法,输入最大长度为264位的消息,输出160位消息摘要。 数字签名是一种使用私钥对消息进行签名的方式,以证明消息的...
百度百科有不少解说。本文选摘两篇,学习融合,取其要义,加上本人理解而得,旨在融汇思路,助力简历的项目经验写作。 实际中有需加强这方面的写作能力训练的人士,可共享共勉。 本文的主要论述有:概念定义,各项...
title: 平衡三进制tags: 平衡三进制categories: 算法平衡三进制平衡三进制--百度百科一道简单平衡三进制题目:牛客--处女座的砝码参考:ht
——上面这句定义对数据库的定义来自百度百科。通过这个定义,我们也能明显看出数据结构是实现数据库的基石。 从本质来看,数据库只负责两件事:读数据、写数据;而数据结构研究的是如何合理组织数据,尽可能提升读...
#### 5. ElasticSearch 的应用场景 ElasticSearch 在多种场景下都有着广泛的应用: - **全文搜索**:例如维基百科使用 ES 提供全文搜索并高亮关键字;StackOverflow 结合全文搜索与地理位置查询。 - **日志分析与...
摘取百度百科AES词条的简介:AES即高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方...
Python爬虫之Beautiful Soup用法-简书,总结得比较到位,适合概念迅速消化自学,推荐,另附有DOM的百度百科解释。本文做了重点摘清。 BeautifulSoup使用find,find_all 实际用的较多的函数,注意的常见问题。
"mm-wiki-linux-amd64.tar.gz" 是一个专为Linux系统设计的开源百科项目,旨在帮助用户搭建自己的百科平台,类似于百度百科。该压缩包包含了所有必要的文件,支持PHP5和PHP7环境,让开发者或爱好者可以在本地或服务器...
对于MarkDown,还有很多功能尚未发掘,更多功能可以百度或者自行开发 PS:Editor.md遵循和使用 MIT License 开源协议 本程序使用以下模块: 模块名 作用 作者或工作室 Win10皮肤模块 加载皮肤 清风科技 miniblink ...
1、新增“效验_取md5_进度”,进度获取文件MD5值,支持大文件,采纳易友【@易模块】建议。 2、改善“程序_禁止重复运行”添加是否显示已运行的参数,此命令由易友【@小爬虫】改进。 3、修正“网页_取网址引用”不...
农业领域知识图谱的构建,包括数据爬取(百度百科)、数据分类、利用结构化数据生成三元组、非结构化数据的分句(LTP),分词(jieba),命名实体识别(LTP)、基于依存句法分析(主谓关系等)的关系抽取和利用neo4j生成可视化...
5. `results.txt`:记录仿真结果的文本文件,包含关键参数的输出。 6. `README.md`:提供模型使用说明和注意事项。 通过运行这些文件,用户可以在MATLAB环境中复现整个仿真过程,从建立网络模型,到进行潮流计算,...
2.完善“线程_取自线程句柄”,采用百度百科的说明作为备注 1.修复“线程_取自线程ID”,采用百度百科的说明作为备注 2.修复“编码_usc2到ansi”“编码_ansi到usc2” 暂时使用EX版代替原来的代码 感谢 478755018 的...