0
点赞
收藏
分享

微信扫一扫

C#实现Des加密和解密

using System; 
using System.IO; 
using System.Security.Cryptography; 

namespace Vavic 
{ 
/// <summary> 
/// Security 的摘要说明。 
/// </summary> 
public class Security 
{ 
const string KEY_64 = "VavicApp"; 
const string IV_64 = "VavicApp"; //注意了,是8个字符,64位 

public Security() 
{ 
// 
// TODO: 在此处添加构造函数逻辑 
// 
} 

public static string Encode(string data) 
{ 
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64); 
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64); 

DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider(); 
int i = cryptoProvider.KeySize; 
MemoryStream ms = new MemoryStream(); 
CryptoStream cst = new CryptoStream(ms,cryptoProvider.CreateEncryptor(byKey,byIV),CryptoStreamMode.Write); 

StreamWriter sw = new StreamWriter(cst); 
sw.Write(data); 
sw.Flush(); 
cst.FlushFinalBlock(); 
sw.Flush(); 
return Convert.ToBase64String(ms.GetBuffer(),0,(int)ms.Length); 

} 

public static string Decode(string data) 
{ 
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64); 
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64); 

byte[] byEnc; 
try 
{ 
byEnc = Convert.FromBase64String(data); 
} 
catch 
{ 
return null; 
} 

DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider(); 
MemoryStream ms = new MemoryStream(byEnc); 
CryptoStream cst = new CryptoStream(ms,cryptoProvider.CreateDecryptor(byKey,byIV),CryptoStreamMode.Read); 
StreamReader sr = new StreamReader(cst); 
return sr.ReadToEnd(); 
} 
} 
}

举报

相关推荐

0 条评论