C# DES加密解密
标签:turn com lin mba flush des namespace replace puts
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
namespace ConsoleApp1
{
public class EncryptUtil
{
///
/// MD5加密码字符串
///
/// 消息体
/// MD5签名字符
public static string MD5Encrypt(string sInputString)
{
System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create();
string encoded = BitConverter.ToString(md5.ComputeHash(Encoding.UTF8.GetBytes(sInputString))).Replace("-", "");
return encoded;
}
///
/// DES加密
///
/// 加密后的消息体
/// 24位的密钥
/// 解密后的消息体
public static string DESEncryptBase64(string sInputString, string sKey)
{
if (string.IsNullOrEmpty(sInputString) || string.IsNullOrEmpty(sKey) || sKey.Length != 24)
{
return string.Empty;
}
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
des.Mode = CipherMode.ECB;
des.Padding = PaddingMode.PKCS7;
string key = sKey.Substring(0, 12);
string iv = sKey.Remove(0, 12);
byte[] byKey = Convert.FromBase64String(key);
byte[] byIV = Convert.FromBase64String(iv);
byte[] inputByteArray = Encoding.UTF8.GetBytes(sInputString);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
}
///
/// DES解密
///
/// 待加密消息体
/// 24位的密钥
/// 加密后的消息体
public static string DESDecryptBase64(string sInputString, string sKey)
{
if (string.IsNullOrEmpty(sInputString) || string.IsNullOrEmpty(sKey) || sKey.Length != 24)
{
return string.Empty;
}
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
des.Mode = CipherMode.ECB;
des.Padding = PaddingMode.PKCS7;
string key = sKey.Substring(0, 12);
string iv = sKey.Remove(0, 12);
byte[] byKey = Convert.FromBase64String(key);
byte[] byIV = Convert.FromBase64String(iv);
byte[] inputByteArray = Convert.FromBase64String(sInputString);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(byKey, byIV), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
Encoding encoding = new UTF8Encoding();
return encoding.GetString(ms.ToArray());
}
}
}
C# DES加密解密
标签:turn com lin mba flush des namespace replace puts
原文地址:http://www.cnblogs.com/sanday/p/7873665.html
文章来自:
搜素材网的
编程语言模块,转载请注明文章出处。
文章标题:
C# DES加密解密
文章链接:http://soscw.com/index.php/essay/79906.html
评论