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# .net MD5加密解密工具及加密解密类。使用方便,可直接下载加密解密代码在项目中使用。
C# MD5加密解密实例,一个小程序,哈哈
MD5加密解密工具,就我所知,MD5的目标是生成摘要。严格来说不是一种加密算法。 不管多长的信息都能生成固定长度的MD5编码的话,必然会有信息丢失。那么光有MD5编码的话是绝对不可能还原信息的。 那网上那些MD5解密...
本文将深入探讨"C#中的MD5加密解密算法"这一主题,通过分析标题、描述、标签及部分内容,提炼并阐述其中的关键知识点。 ### MD5算法概述 MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,能将任意...
在C#中实现MD5加密,可以帮助开发者确保数据在传输或存储过程中的安全性。以下将详细介绍C#中MD5加密的基本原理、使用方法以及在实际应用中的注意事项。 一、MD5概述 MD5是由美国计算机科学家Ronald Rivest设计的,...
在C#编程语言中,MD5加密也是一项常用的技术。下面我们将深入探讨C#中MD5加密的相关知识点。 1. **MD5的基本原理** - MD5算法由Ron Rivest于1991年设计,它将输入信息(任意长度)通过一系列复杂的数学运算(包括...
C#中常涉及到对用户密码的加密于解密的算法,其中使用MD5加密是最常见的的实现方式。 (程序下载就能运行调试,简单明了)
才用md5加密以后,然后在解,可以实现原文与密文的互换!
本文将详细介绍MD5加密算法的工作原理、C#中的MD5实现以及如何进行加密解密操作。 MD5算法简介: MD5是由美国计算机科学家Ronald Rivest设计的一种强哈希函数,它将任意长度的输入(又叫做预映射)通过一系列的数学...
### 基于C#开发语言的MD5加密解密方法 #### 一、MD5简介 MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,可生成一个128位(16字节)的散列值,通常用于确保数据的完整性。在网络安全领域,MD5...
标题和描述中提到的知识点是关于C#中的MD5加密与解密技术。MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希算法,主要用于数据完整性检查和密码学安全领域,如用户密码的存储、文件校验等场景。然而,需要...
在提供的压缩包文件中,"ClassMD5.cs"可能是包含了一个自定义MD5加密解密功能的类,你可以通过查看源码来了解具体实现方式。"调用说明.txt"可能包含了如何在你的项目中使用这个类的说明,包括如何初始化对象,调用...
C#实现MD5加密 方法一:System.Web.Security 方法二:MD5CryptoServiceProvider
MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,主要应用于数据的校验和加密场景。在IT行业中,MD5常被用来确保数据的完整性和安全性,尤其是在存储密码时,通常会将原始密码转化为MD5哈希值进行存储...
总之,C#中的MD5加密主要用作文件的完整性校验,而不是传统的加密解密。理解哈希函数的工作原理以及其在信息安全中的作用,对于任何IT专业人员都是至关重要的。同时,需要注意的是,对于高安全性的场景,应选择更...
根据给定文件的信息,我们可以总结出关于C#中几种常用加密...通过以上代码示例,我们了解了如何在C#中实现DES加密解密、MD5和SHA256散列函数。这些技术在实际开发中非常有用,尤其是在保护用户数据的安全性和隐私方面。
c#语言实现的原始MD5加密算法,支持16位加密和32位加密.
在Winform环境下,C#提供了System.Security.Cryptography命名空间,该命名空间包含了MD5类,允许开发者方便地进行MD5加密和解密操作。然而,需要明确的是,MD5并不支持解密,因为它是一种单向函数,即数据经过MD5...