`
yuelangyc
  • 浏览: 456786 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C#中简单调用MD5方法以及MD5简介

    博客分类:
  • C#
阅读更多
MD5简介
         MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法。换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。

MD5算法

第一步:增加填充
        增加padding使得数据长度(bit为单位)模512为448。如果数据长度正好是模512为448,增加512个填充bit,也就是说填充的个数为1-512。第一个bit为1,其余全部为0。
第二步:补足长度
        将数据长度转换为64bit的数值,如果长度超过64bit所能表示的数据长度的范围,值保留最后64bit,增加到前面填充的数据后面,使得最后的数据为512bit的整数倍。也就是32bit的16倍的整数倍。在RFC1321中,32bit称为一个word。
第三步:初始化变量
用到4个变量,分别为A、B、C、D,均为32bit长。初始化为:
A: 01 23 45 67
B: 89 ab cd ef
C: fe dc ba 98
D: 76 54 32 10
第四步:数据处理
首先定义4个辅助函数:
F(X,Y,Z) = XY v not(X) Z
G(X,Y,Z) = XZ v Y not(Z)
H(X,Y,Z) = X xor Y xor Z
I(X,Y,Z) = Y xor (X v not(Z))
其中:XY表示按位与,X v Y表示按位或,not(X)表示按位取反。xor表示按位异或。
函数中的X、Y、Z均为32bit。定义一个需要用到的数组:T(i),i取值1-64,T(i)等于abs(sin(i))的4294967296倍的整数部分,i为弧度。
假设前三步处理后的数据长度为32*16*Nbit
第五步:输出
最后得到的ABCD为输出结果,共128bit。A为低位,D为高位。

         MD5在ASP.net(C#)中的实现:
//欲进行md5加密的字符串
            string test = "123abc";
           
            //获取加密服务
            System.Security.Cryptography.MD5CryptoServiceProvider md5CSP = new System.Security.Cryptography.MD5CryptoServiceProvider();
       
            //获取要加密的字段,并转化为Byte[]数组
            byte[] testEncrypt = System.Text.Encoding.Unicode.GetBytes(test);

            //加密Byte[]数组
            byte[] resultEncrypt = md5CSP.ComputeHash(testEncrypt);

            //将加密后的数组转化为字段(普通加密)
            string testResult = System.Text.Encoding.Unicode.GetString(resultEncrypt);

            //作为密码方式加密 
            string Encrypt PWD = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(test, "MD5");


只需最后一段语句即可进行MD5加密,无需引入任何包.

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chessplayer/archive/2007/08/02/1722826.aspx
分享到:
评论

相关推荐

    C# MD5加密 实例源码(加密解密)

    总结,C#中的MD5加密是一个简单的数据处理过程,用于生成数据的数字指纹。虽然MD5在数据完整性方面有一定的作用,但由于其安全性问题,不应再用于密码存储。开发者应当关注最新的加密标准和技术,以确保数据的安全。...

    C# MD5加密调用

    本文介绍了如何在C#中实现MD5加密的基本过程,包括相关命名空间的引入、加密方法的定义以及具体的调用示例。通过这种方式,开发者可以轻松地为自己的应用程序添加数据加密功能,提高应用程序的安全性。

    C#用MD5加密操作实战源码201903

    这个C#用MD5加密操作实战源码201903可能包含了多种MD5加密的实现方式,包括但不限于单向加密、加盐加密、文件MD5校验等,开发者可以通过学习和分析这些源码,深入理解MD5在C#中的应用,并将其运用到自己的项目中。...

    C#md5加密解密

    C#编写的md5加密解密,含调用例子.有需要的朋友请下载使用

    C#页面中密码MD5加密

    ### C#页面中密码MD5(32位)加密知识点详解 #### 一、MD5简介 ...综上所述,以上代码示例提供了一个简单的实现密码MD5加密的方法,但在实际项目中还需考虑更多的安全因素和技术选择,以确保用户数据的安全性。

    AES,MD5加解密dll在C#代码中的调用.zip

    以上就是关于AES加密和MD5哈希在C++ DLL以及C#中应用的基本概念和实现方式。在实际使用时,需要注意密钥管理、错误处理、内存管理和性能优化等问题。此外,由于MD5的安全性问题,现在更推荐使用SHA-2系列哈希函数...

    C# 版本的MD5算法,提供类接口

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能将任意长度的信息映射为固定长度的输出,通常是一个128位的二进制数,以32位十六进制数...在C#中,利用.NET框架提供的API,实现MD5功能既简单又高效。

    C# MD5校验源码

    2. **C#中的MD5类**:在C#中,`System.Security.Cryptography`命名空间下有一个`MD5`类,它提供了计算MD5哈希值的方法。开发者可以通过实例化这个类并调用其方法来获取文件的MD5值。 3. **使用步骤**: - 首先,...

    C#程序MD5算法描述

    总之,C#中的MD5算法是通过`System.Security.Cryptography.MD5`类来实现的,提供了简便的方法来计算任意数据的哈希值,常用于数据校验和简单加密。但由于其安全性问题,应当谨慎在新的项目中使用。

    md5算法C#的实现

    本文主要介绍如何在C#中实现MD5算法,并通过一个简单的示例程序来展示其实现方法。 #### 二、MD5算法原理简述 MD5算法的主要过程包括填充消息使其长度满足特定条件、添加长度信息以及进行一系列复杂的变换等步骤。...

    c# md5计算

    通过本文的介绍,我们可以了解到在C#中实现MD5计算的方法,包括使用`System.Web.Security`和`System.Security.Cryptography`两个命名空间的不同实现方式。此外,还讨论了编码方式对MD5值的影响以及如何计算文件的MD5...

    MD5数字解密 C#源码

    MD5数字解密是信息安全领域中的一个重要话题,尤其是在密码学和数据校验...通过分析这个源码,开发者可以深入了解MD5的工作原理,以及如何在C#中实现相关功能。这对于提升C#编程技能和理解哈希函数的运用具有实际意义。

    用C#创建文件的MD5验证码

    在本知识点中,我们将详细探讨如何使用C#编程语言来实现一个简单的函数,该函数可以读取指定文件并计算其MD5验证码(也称为HashID)。这一功能在很多场景下都非常有用,比如在网络传输过程中验证文件是否被篡改或...

    简短的C#实现MD5代码

    此段代码可以方便地集成到任何C#项目中,只需调用`StringToMD5Hash`方法并传入待加密的字符串即可获得其MD5散列值。例如: ```csharp string originalText = "Hello World"; string hash = StringToMD5Hash...

    C# MD5加密算法

    在深入探讨C#中的MD5加密算法之前,我们先来了解一下MD5算法的基本概念及其在信息安全领域的应用。MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,能够将任意长度的数据转换为一个固定长度(通常是128...

    C#编写的MD5校验器(含源码)

    3. **哈希计算**:然后,调用MD5对象的`ComputeHash()`方法,传入预处理后的字节数组,得到128位的哈希值。 4. **结果转换**:MD5哈希值是16字节的二进制数据,通常会转换为32位的十六进制字符串展示。在C#中,可以...

    C#MD5加密函数

    通过`.NET Framework`中的`System.Security.Cryptography`命名空间,开发者可以轻松地调用MD5相关的API。 #### 四、代码分析 下面是给出的代码示例,我们将逐步解析其工作原理: ```csharp using System.Security...

    C# 实现MD5算法

    根据提供的信息,我们可以详细解析如何在C#中实现MD5算法。MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,用于生成一个128位(16字节)的散列值。它通常用于确保数据完整性和进行密码哈希处理等...

Global site tag (gtag.js) - Google Analytics