md5加密解密 c#实现
2008-06-19 14:41
405 查看
using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace GetPassWord
{
/// <summary>
///DES加解密类
/// </summary>
public class Encryptclass
{
/// <summary>
/// DES解密字符串
/// </summary>
/// <returns>解密后的字符串</returns>
public string Decrypt(string name, string name2, string password)
{
string cipher;
char[] key = new char[8];
if (name.Length > 8)
name = name.Remove(8);
name.CopyTo(0, key, 0, name.Length);
char[] iv = new char[8];
if (name2.Length > 8)
name2 = name2.Remove(8);
name2.CopyTo(0, iv, 0, name2.Length);
if (password == null)
{
throw new ArgumentNullException("password");
}
SymmetricAlgorithm serviceProvider = new DESCryptoServiceProvider();
serviceProvider.Key = Encoding.ASCII.GetBytes(key);
serviceProvider.IV = Encoding.ASCII.GetBytes(iv);
byte[] contentArray = Convert.FromBase64String(password);
MemoryStream memoryStream = new MemoryStream(contentArray);
CryptoStream cryptoStream = new CryptoStream(memoryStream, serviceProvider.CreateDecryptor(), CryptoStreamMode.Read);
StreamReader streamReader = new StreamReader(cryptoStream);
cipher = streamReader.ReadToEnd();
streamReader.Dispose();
cryptoStream.Dispose();
memoryStream.Dispose();
serviceProvider.Clear();
return cipher;
}
/// <summary>
/// DES加密字符串
/// </summary>
/// <returns>加密后的字符串</returns>
public string Encrypt(string name, string name2, string password)
{
string cipher;
char[] key = new char[8];
if (name.Length > 8)
name = name.Remove(8);
name.CopyTo(0, key, 0, name.Length);
char[] iv = new char[8];
if (name2.Length > 8)
name2 = name2.Remove(8);
name2.CopyTo(0, iv, 0, name2.Length);
if (password == null)
{
throw new ArgumentNullException("password");
}
SymmetricAlgorithm serviceProvider = new DESCryptoServiceProvider();
serviceProvider.Key = Encoding.ASCII.GetBytes(key);
serviceProvider.IV = Encoding.ASCII.GetBytes(iv);
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream, serviceProvider.CreateEncryptor(), CryptoStreamMode.Write);
StreamWriter streamWriter = new StreamWriter(cryptoStream);
streamWriter.Write(password);
streamWriter.Dispose();
cryptoStream.Dispose();
byte[] signData = memoryStream.ToArray();
memoryStream.Dispose();
serviceProvider.Clear();
cipher = Convert.ToBase64String(signData);
return cipher;
}
}
}
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace GetPassWord
{
/// <summary>
///DES加解密类
/// </summary>
public class Encryptclass
{
/// <summary>
/// DES解密字符串
/// </summary>
/// <returns>解密后的字符串</returns>
public string Decrypt(string name, string name2, string password)
{
string cipher;
char[] key = new char[8];
if (name.Length > 8)
name = name.Remove(8);
name.CopyTo(0, key, 0, name.Length);
char[] iv = new char[8];
if (name2.Length > 8)
name2 = name2.Remove(8);
name2.CopyTo(0, iv, 0, name2.Length);
if (password == null)
{
throw new ArgumentNullException("password");
}
SymmetricAlgorithm serviceProvider = new DESCryptoServiceProvider();
serviceProvider.Key = Encoding.ASCII.GetBytes(key);
serviceProvider.IV = Encoding.ASCII.GetBytes(iv);
byte[] contentArray = Convert.FromBase64String(password);
MemoryStream memoryStream = new MemoryStream(contentArray);
CryptoStream cryptoStream = new CryptoStream(memoryStream, serviceProvider.CreateDecryptor(), CryptoStreamMode.Read);
StreamReader streamReader = new StreamReader(cryptoStream);
cipher = streamReader.ReadToEnd();
streamReader.Dispose();
cryptoStream.Dispose();
memoryStream.Dispose();
serviceProvider.Clear();
return cipher;
}
/// <summary>
/// DES加密字符串
/// </summary>
/// <returns>加密后的字符串</returns>
public string Encrypt(string name, string name2, string password)
{
string cipher;
char[] key = new char[8];
if (name.Length > 8)
name = name.Remove(8);
name.CopyTo(0, key, 0, name.Length);
char[] iv = new char[8];
if (name2.Length > 8)
name2 = name2.Remove(8);
name2.CopyTo(0, iv, 0, name2.Length);
if (password == null)
{
throw new ArgumentNullException("password");
}
SymmetricAlgorithm serviceProvider = new DESCryptoServiceProvider();
serviceProvider.Key = Encoding.ASCII.GetBytes(key);
serviceProvider.IV = Encoding.ASCII.GetBytes(iv);
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream, serviceProvider.CreateEncryptor(), CryptoStreamMode.Write);
StreamWriter streamWriter = new StreamWriter(cryptoStream);
streamWriter.Write(password);
streamWriter.Dispose();
cryptoStream.Dispose();
byte[] signData = memoryStream.ToArray();
memoryStream.Dispose();
serviceProvider.Clear();
cipher = Convert.ToBase64String(signData);
return cipher;
}
}
}
相关文章推荐
- C#中实现MD5加密和解密
- C#实现md5加密 sha1加密 sha256加密 sha384加密 sha512加密 des加密解密
- C# wpf 实现 MD5加密解密 小工具
- C# MD5加密解密帮助类
- 如何用c#实现对中文的md5加密
- C#实现MD5加密
- C#中实现MD5加密
- (转)C#实现MD5加密
- C#实现MD5加密,winform c#2005
- C#实现内存中字符串或byte[]的加解密
- C#实现MD5加密
- MD5加密简介以及C#下的操作实现
- C#实现MD5加密
- c#实现文件加密、解密及文件拖拽至程序图标直接打开
- C#实现MD5加密
- C#MD5加密解密【转载】
- C#实现MD5加密(转)
- Java实现MD5加密及解密的代码实例分享
- C#实现MD5加密,winform c#2005
- C#实现MD5加密