文档下载 文档下载导航
设为首页 | 加入收藏
搜索 请输入内容:  
 导航当前位置: 文档下载 > 所有分类 > IT/计算机 > MD5算法简介及两种实现方法(使用WindowsAPI函数)
侵权投诉

MD5算法简介及两种实现方法(使用WindowsAPI函数)

MD5简介

MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式。MD5算法的描述和C语言源代码在Internet RFCs 1321中有详细的描述(doc.guandang.net),这是一份最权威的文档,由Ronald L. Rivest在1992年8月向IEFT提交。

我们先来看看RFC文档中对MD5的描述:

This document describes the MD5 message-digest algorithm(摘要). The algorithm takes as input a message of arbitrary length(任意长度) and produces as output a 128-bit "fingerprint" or "message digest" of the input. It is conjectured that it is computationally infeasible(不可实行的) to produce two messages having the same message digest, or to produce any message having a given prespecified target message digest. The MD5 algorithm is intended for digital signature applications, where a large file must be "compressed" in a secure manner before being encrypted with a private (secret) key under a public-key cryptosystem such as RSA. 从上面的RFC描述中,可以总结出MD5摘要算法两个最重要的特性:

1、 不可逆,无法由结果退出输入

2、 two messages不可能拥有相同的摘要信息,保证一对一

正是这两个特性保证了MD5在数字签名中的应用,将一个需要签名的大文件转换为等价的128bit的摘要信息,再用私钥对128bit的摘要信息进行加密。

摘要的结果是128bit的,所以网上经常看到的32位/16位MD5中的位对应的是16进制的32和16,128bit刚好是32字节。

MD5只是一个摘要算法,由于它具有上面说的两个特性,在实际中(很多网站)也被用来对密码进行摘要,起到加密的作用。

算法实现

关于MD5的算法实现,当然可以参考RFC文档中的源代码,不过如果只在Windows平台应用的话,完全可以偷懒,调用Windows现有的API函数,只需三个API就可以搞定,很简单,呵呵!,分别是MD5Init、MD5Update、MD5Final,只是这三个函数没有在windows的.h头文件中有定义,也没有相应的import library,需要自己声明它们的函数原型,这三个函数的具体实现在Cryptdll.dll中,需要动态加载!

实现一:

下面是具体的源代码,用Cryptdll.dll中的三个api实现:

用法:MD5.exe[空格]input_message

第1页

你可能喜欢

热门文档

相关文档

  • WINDOWS API函数

    windows API函数介绍第一章 Win32 API 概论 1.1...类库和控件是难以实现 的,必须直接使用 API 函数来...( “映射” )对象的大小、方向和形状的 一种算法...

  • Windows API函数使用技巧

    关闭Windows 控制WINDOWS的开关:如关闭WINDOWS,重新启动WINDOWS等, ExitWindowsEx(UINT uFlags,DWORD dwReserved);是实现这一功能的API函数首先定义常数 const EWX_...

  • 用WIN32API函数实现Windows下的串行通讯

    用WIN32API函数实现Windows下的串行通讯_工学_高等教育_教育专区。用WIN32API...DCB 结 构定义如下(只介绍主要的几项) : typedef struct _ DCB{ …… ...

  • 基于WindowsAPI函数编程的PC机与单片机多机通信的实现_专业资料

    基于WindowsAPI函数编程的PC机与单片机多机通信的实现_专业资料。基于PC机与80C51单片机的多机串行通信,主机通信程序采用WindowsAPI函数在Delphi中结合多线程等技术编写...

  • WindowsAPI函数清单

    23 WindowsAPI 函数清单 简介: WindowsAPI 简介 : 的英文全称(Application Interface), API 的英文全称 (Application Programming Interface) , WIN32 API 位平台的...

  • WindowsAPI函数大全(分类整理+封面+目录)

    以便能用 API 函数 AddFontResource 将其加入 Windows 系统 DrawText 将文本描绘到指定的矩形中 DrawTextEx 与 DrawText 相似,只是加入了更多的功能 EnumFontFamilies ...

  • 【论文】用VB调用Windows API函数实现机房实时监控

    用VB调用Windows API函数实现机房实时监控_专业资料。文章介绍了Windows API函数的基本概念,分析了当前机房管理中存在的问题,并给出了用VB调用Windows API函数实现...

  • 【论文】API函数实现Windows 2003 Server下目录访问权...

    本文介绍了在Windows 2003 Server下,通过调用Windows API函数实现目录、文件的访问权限设置。维普资讯 http://www.cqvip.com 20年第 8期 08 福 建 电 脑 138...

  • 低级C低级WindowsAPI钩子

    本文想展示怎么使用一种低级WindowsAPI钩子在一个C#利用程序中实现键盘"操纵"。... ppt简历精美模板带范文 1/2 相关文档推荐 WindowsAPI函数清单 19页 免费 十字...

  • API函数抓屏

    API函数抓屏_IT/计算机_专业资料。简介如何使用windowsAPI 实现录制pc屏幕...通过这个程式,我们将了解到c#是怎么调用api函数,和.net框架中的类库内容是多么地...

站点地图 | 文档上传 | 侵权投诉 | 手机版
本站所有资源均来自互联网,本站只负责收集和整理,均不承担任何法律责任,如有侵权等其它行为请联系我们.
文档下载 Copyright 2013 doc.guandang.net All Rights Reserved.  -  email