常用的通讯加密算法
/// <summary>
/// DES、3DES 加解密;MAC算法
/// </summary>
public sealed class DES_Cryptographycs
{
#region --- 字段 Begin ---
private PaddingMode mPaddingMode;
private CipherMode mCipherMode;
private byte[] mbyKey;
private byte[] mbyIV;
#endregion --- 字段 End ---
#region --- 构造方法 Begin ---
/// <summary>
/// 构造函数
/// </summary>
public DES_Cryptographycs()
{
this.mbyIV = new byte[8];
this.mbyKey = new byte[8];
this.mCipherMode = CipherMode.CBC;
this.mPaddingMode = PaddingMode.None;
}
#endregion --- 构造方法 End ---
#region --- 属性 Begin ---
/// <summary>
/// DES指定用于加密的块密码模式
/// </summary>
public CipherMode CipherMode
{
get
{
return this.mCipherMode;
}
set
{
this.mCipherMode = value;
}
}
/// <summary>
/// 指定在消息数据块比加密操作所需的全部字节数短时应用的填充类型
/// </summary>
public PaddingMode PaddingMode
{
get
{
return this.mPaddingMode;
}
set
{
this.mPaddingMode = value;
}
}
/// <summary>
/// 密钥
/// </summary>
public byte[] Key
{
get
{
return this.mbyKey;
}
set
{
this.mbyKey = value;
}
}
/// <summary>
/// 初始化向量
/// </summary>
public byte[] IV
{
get
{
return this.mbyIV;
}
set
{
this.mbyIV = value;
}
}
#endregion --- 属性 End ---
#region --- DES 加解密 Begin ---
/// <summary>
/// DES
/// </summary>
/// <param name="data">源数据</param>
/// <returns>返回加密结果</returns>
public byte[] DES_Encrypt(byte[] data)
{
try
{
DESCryptoServiceProvider MyServiceProvider = new DESCryptoServiceProvider();
//计算des加密所采用的算法
MyServiceProvider.Mode = this.mCipherMode;
//计算填充类型
MyServiceProvider.Padding = this.mPaddingMode;
//创建加密对象