using System;
using System.Text;
using System.Globalization;
using System.Security.Cryptography;
public class DES
{
private string key = "";
/// <summary>
/// key
/// </summary>
public string Key
{
get { return key; }
set { key = value; }
}
// 创建Key
public string GenerateKey()
{
DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create();
return key = ASCIIEncoding.ASCII.GetString(desCrypto.Key);
}
/// <summary>
/// 加密
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public string MD5Enc(string name)
{
return this.EncryptString(name,key);
}
/// <summary>
/// 解密
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public string MD5Dnc(string name)
{
return this.DecryptString(name, 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);
// des.Key;为当时的key...
// }
//}
分享到:
相关推荐
C#编写的md5加密解密,含调用例子.有需要的朋友请下载使用
C# MD5加密解密源代码,可用于WinForms级WEB开发
C# .net MD5加密解密工具及加密解密类。使用方便,可直接下载加密解密代码在项目中使用。
C# MD5加密解密实例,一个小程序,哈哈
MD5加密解密工具,就我所知,MD5的目标是生成摘要。严格来说不是一种加密算法。 不管多长的信息都能生成固定长度的MD5编码的话,必然会有信息丢失。那么光有MD5编码的话是绝对不可能还原信息的。 那网上那些MD5解密...
C# MD5加密 实例源码(加密解密)
MDS加密解密算法,Word文档,详细代码
c#MD5加密与解密c#MD5加密与解密
开发环境VS2013,编程语言为C#,工程是为实现MD5数据加密功能而开发的。源代码已编译通过,可放心下载运行。供学习参考。
C#中常涉及到对用户密码的加密于解密的算法,其中使用MD5加密是最常见的的实现方式。 (程序下载就能运行调试,简单明了)
才用md5加密以后,然后在解,可以实现原文与密文的互换!
c#,.net md5加密解密技术
MD5 加密解密例子 j2ee struts spring hibernate MD5
C#文件MD5加密解密代码
C#实现MD5加密 方法一:System.Web.Security 方法二:MD5CryptoServiceProvider
c#语言实现的原始MD5加密算法,支持16位加密和32位加密.
MD5加密解密方法,已经调试过,可以正常运行,加密前解密后内容一致.
C#加密解密,包括DES、MD5、SHA256
C#,对MD5加密和解密的原程序.百分百好用的.我自己使用的.因为自己没有分了.只收一分.太穷了.总共我才二分.可怜.
C#在Winform环境下,通过MD5对数据进行加密和解密.