C# MD5 类
来源:互联网 发布:php免费源码下载 编辑:程序博客网 时间:2024/06/06 15:04
表示 MD5 哈希算法的所有实现均从中继承的抽象类。
命名空间:System.Security.Cryptography
程序集:mscorlib(在 mscorlib.dll 中)
[ComVisibleAttribute(true)] public abstract class MD5 : HashAlgorithm
哈希函数将任意长度的二进制字符串映射为固定长度的小型二进制字符串。加密哈希函数有这样一个属性:在计算上不大可能找到散列为相同的值的两个不同的输入;也就是说,两组数据的哈希值仅在对应的数据也匹配时才会匹配。数据的少量更改会在哈希值中产生不可预知的大量更改。
MD5 算法的哈希值大小为 128 位。
MD5 类的 ComputeHash 方法将哈希作为 16 字节的数组返回。请注意,某些 MD5 实现会生成 32 字符的十六进制格式哈希。若要与此类实现进行互操作,请将ComputeHash 方法的返回值格式化为十六进制值。
下面的代码示例计算字符串的 MD5 哈希值,并将该哈希作为 32 字符的十六进制格式字符串返回。此代码示例中创建的哈希字符串与能创建 32 字符的十六进制格式哈希字符串的任何 MD5 哈希函数(在任何平台上)兼容。
using System;using System.Security.Cryptography;using System.Text;class Example{ // Hash an input string and return the hash as // a 32 character hexadecimal string. static string getMd5Hash(string input) { // Create a new instance of the MD5CryptoServiceProvider object. MD5 md5Hasher = MD5.Create(); // Convert the input string to a byte array and compute the hash. byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input)); // Create a new Stringbuilder to collect the bytes // and create a string. StringBuilder sBuilder = new StringBuilder(); // Loop through each byte of the hashed data // and format each one as a hexadecimal string. for (int i = 0; i < data.Length; i++) { sBuilder.Append(data[i].ToString("x2")); } // Return the hexadecimal string. return sBuilder.ToString(); } // Verify a hash against a string. static bool verifyMd5Hash(string input, string hash) { // Hash the input. string hashOfInput = getMd5Hash(input); // Create a StringComparer an comare the hashes. StringComparer comparer = StringComparer.OrdinalIgnoreCase; if (0 == comparer.Compare(hashOfInput, hash)) { return true; } else { return false; } } static void Main() { string source = "Hello World!"; string hash = getMd5Hash(source); Console.WriteLine("The MD5 hash of " + source + " is: " + hash + "."); Console.WriteLine("Verifying the hash..."); if (verifyMd5Hash(source, hash)) { Console.WriteLine("The hashes are the same."); } else { Console.WriteLine("The hashes are not same."); } }}// This code example produces the following output://// The MD5 hash of Hello World! is: ed076287532e86365e841e92bfc50d8c.// Verifying the hash...// The hashes are the same.
System.Object
System.Security.Cryptography.HashAlgorithm
System.Security.Cryptography.MD5
System.Security.Cryptography.MD5CryptoServiceProvider
System.Security.Cryptography.HashAlgorithm
System.Security.Cryptography.MD5
System.Security.Cryptography.MD5CryptoServiceProvider
此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。
- C#的MD5类
- C# MD5 类
- c#的MD5加密类
- C# MD5加密工具类
- C# MD5加密工具类
- C# MD5
- c# md5
- C# MD5
- c#编写的MD5加密类
- 【转】C# MD5算法的一个类
- c#编写的MD5加密类
- c#编写的MD5加密类
- MD5等加密类 C#算法实现
- MD5等加密类 C#算法实现
- C# MD5加密用户密码的类
- C# MD5加密解密类 winform
- c#编写的MD5加密类
- C#的MD5加密
- oracle的小应用,commit。
- 关于虚拟机文件系统的讨论
- 站内流量相关
- Tomcat内存溢出的三种情况及解决办法分析
- had objects of type "java.lang.String" but expected signature "org.apache.struts.upload.FormFile"
- C# MD5 类
- JS时间
- 设计模式之7 command模式和state模式,调停者模式,门面模式
- 散记-extern
- Oracle DataPump”EXCLUDE“参数和限制为4000字节
- SQL Server数据库中批量替换数据的方法
- 字符串匹配
- ARM汇编之寄存器
- ios 内存点滴