`
minh456
  • 浏览: 64313 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

C# MD5加密解密

    博客分类:
  • C#
阅读更多
using System.Security.Cryptography;
using    System.IO; 
using    System.Text;

///MD5加密
  public string MD5Encrypt(string    pToEncrypt,  string    sKey)
    { 
     DESCryptoServiceProvider    des  =  new    DESCryptoServiceProvider(); 
   byte[]    inputByteArray  =    Encoding.Default.GetBytes(pToEncrypt); 
     des.Key  =    ASCIIEncoding.ASCII.GetBytes(sKey); 
     des.IV  =    ASCIIEncoding.ASCII.GetBytes(sKey); 
     MemoryStream    ms  =  new    MemoryStream(); 
     CryptoStream    cs  =  new    CryptoStream(ms,    des.CreateEncryptor(),CryptoStreamMode.Write); 
     cs.Write(inputByteArray,  0,    inputByteArray.Length); 
     cs.FlushFinalBlock(); 
     StringBuilder    ret  =  new    StringBuilder(); 
   foreach(byte    b  in    ms.ToArray()) 
     { 
      ret.AppendFormat("{0:X2}",    b); 
     } 
     ret.ToString(); 
   return    ret.ToString(); 


    }

  ///MD5解密
  public string MD5Decrypt(string    pToDecrypt,  string    sKey)
    {
     DESCryptoServiceProvider    des  =  new    DESCryptoServiceProvider(); 

   byte[]    inputByteArray  =  new  byte[pToDecrypt.Length  /  2]; 
   for(int    x  =  0;    x  <    pToDecrypt.Length  /  2;    x++) 
     { 
    int    i  =    (Convert.ToInt32(pToDecrypt.Substring(x  *  2,  2),  16)); 
      inputByteArray[x]  =    (byte)i; 
     } 

     des.Key  =    ASCIIEncoding.ASCII.GetBytes(sKey); 
     des.IV  =    ASCIIEncoding.ASCII.GetBytes(sKey); 
     MemoryStream    ms  =  new    MemoryStream(); 
     CryptoStream    cs  =  new    CryptoStream(ms,    des.CreateDecryptor(),CryptoStreamMode.Write); 
     cs.Write(inputByteArray,  0,    inputByteArray.Length); 
     cs.FlushFinalBlock(); 

     StringBuilder    ret  =  new    StringBuilder(); 
            
   return    System.Text.Encoding.Default.GetString(ms.ToArray()); 
    }


-------------------------------------------------------------------------------

using System;
using System.Text;
using System.Globalization;
using System.Security.Cryptography;
class DES
{
// 创建Key
public string GenerateKey()
{
DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create();
return ASCIIEncoding.ASCII.GetString(desCrypto.Key);
}
// 加密字符串
public string EncryptString(string sInputString, string sKey)
{
byte [] data = Encoding.UTF8.GetBytes(sInputString);
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
ICryptoTransform desencrypt = DES.CreateEncryptor();
byte [] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
return BitConverter.ToString(result);
}
// 解密字符串
public string DecryptString(string sInputString, string sKey)
{
string [] sInput = sInputString.Split("-".ToCharArray());
byte [] data = new byte[sInput.Length];
for(int i = 0; i < sInput.Length; i++)
{
data[i] = byte.Parse(sInput[i], NumberStyles.HexNumber);
}
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
ICryptoTransform desencrypt = DES.CreateDecryptor();
byte [] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
return Encoding.UTF8.GetString(result);
}
}
class Test
{
static void Main()
{
DES des = new DES();
string key = des.GenerateKey();
string s0 = "中国软件 - csdn.net";
string s1 = des.EncryptString(s0, key);
string s2 = des.DecryptString(s1, key);
Console.WriteLine("原串: [{0}]", s0);
Console.WriteLine("加密: [{0}]", s1);
Console.WriteLine("解密: [{0}]", s2);
}
}
/* 程序输出:
原串: [中国软件 - csdn.net]
加密: [E8-30-D0-F2-2F-66-52-14-45-9A-DC-C5-85-E7-62-9B-AD-B7-82-CF-A8-0A-59-77]
解密: [中国软件 - csdn.net]
*/
分享到:
评论

相关推荐

    C#md5加密解密

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

    C# .net MD5加密解密工具及加密解密类

    C# .net MD5加密解密工具及加密解密类。使用方便,可直接下载加密解密代码在项目中使用。

    C# MD5加密解密实例

    C# MD5加密解密实例,一个小程序,哈哈

    MD5的加密解密c#代码

    MD5加密解密工具,就我所知,MD5的目标是生成摘要。严格来说不是一种加密算法。 不管多长的信息都能生成固定长度的MD5编码的话,必然会有信息丢失。那么光有MD5编码的话是绝对不可能还原信息的。 那网上那些MD5解密...

    C#Md5加密解密算法

    本文将深入探讨"C#中的MD5加密解密算法"这一主题,通过分析标题、描述、标签及部分内容,提炼并阐述其中的关键知识点。 ### MD5算法概述 MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,能将任意...

    C#MD5加密程序源码

    在C#中实现MD5加密,可以帮助开发者确保数据在传输或存储过程中的安全性。以下将详细介绍C#中MD5加密的基本原理、使用方法以及在实际应用中的注意事项。 一、MD5概述 MD5是由美国计算机科学家Ronald Rivest设计的,...

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

    在C#编程语言中,MD5加密也是一项常用的技术。下面我们将深入探讨C#中MD5加密的相关知识点。 1. **MD5的基本原理** - MD5算法由Ron Rivest于1991年设计,它将输入信息(任意长度)通过一系列复杂的数学运算(包括...

    C#md5加密对应Java-md5加密

    C# MD5加密类型支持:1-16位的加密;2-32位加密;3:base64加密对应JAVA md5 16位的加密;2-32位加密;3:base64加密

    C# md5加密解密案例

    C#中常涉及到对用户密码的加密于解密的算法,其中使用MD5加密是最常见的的实现方式。 (程序下载就能运行调试,简单明了)

    c#md5加密解密器

    才用md5加密以后,然后在解,可以实现原文与密文的互换!

    c#,.net md5加密解密技术

    本文将详细介绍MD5加密算法的工作原理、C#中的MD5实现以及如何进行加密解密操作。 MD5算法简介: MD5是由美国计算机科学家Ronald Rivest设计的一种强哈希函数,它将任意长度的输入(又叫做预映射)通过一系列的数学...

    MD5加密解密方法.......

    ### 基于C#开发语言的MD5加密解密方法 #### 一、MD5简介 MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,可生成一个128位(16字节)的散列值,通常用于确保数据的完整性。在网络安全领域,MD5...

    c#MD5加密与解密

    标题和描述中提到的知识点是关于C#中的MD5加密与解密技术。MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希算法,主要用于数据完整性检查和密码学安全领域,如用户密码的存储、文件校验等场景。然而,需要...

    C#,对MD5加密和解密的原程序()

    在提供的压缩包文件中,"ClassMD5.cs"可能是包含了一个自定义MD5加密解密功能的类,你可以通过查看源码来了解具体实现方式。"调用说明.txt"可能包含了如何在你的项目中使用这个类的说明,包括如何初始化对象,调用...

    C#实现MD5加密

    C#实现MD5加密 方法一:System.Web.Security 方法二:MD5CryptoServiceProvider

    MD5 加密解密例子

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,主要应用于数据的校验和加密场景。在IT行业中,MD5常被用来确保数据的完整性和安全性,尤其是在存储密码时,通常会将原始密码转化为MD5哈希值进行存储...

    C#文件MD5加密解密代码

    总之,C#中的MD5加密主要用作文件的完整性校验,而不是传统的加密解密。理解哈希函数的工作原理以及其在信息安全中的作用,对于任何IT专业人员都是至关重要的。同时,需要注意的是,对于高安全性的场景,应选择更...

    C#加密解密,包括DES、MD5、SHA256

    根据给定文件的信息,我们可以总结出关于C#中几种常用加密...通过以上代码示例,我们了解了如何在C#中实现DES加密解密、MD5和SHA256散列函数。这些技术在实际开发中非常有用,尤其是在保护用户数据的安全性和隐私方面。

    C#实现MD5加密(16位和32位)算法

    c#语言实现的原始MD5加密算法,支持16位加密和32位加密.

Global site tag (gtag.js) - Google Analytics