TripleDES加密

作者: 游戏开发小Y | 来源:发表于2017-01-17 15:28 被阅读11次

表示三重数据加密标准算法的基类,TripleDES 的所有实现都必须从此基类派生。是从 SymmetricAlgorithm 类里继承出来。

一、提要

命名空间:System.Security.Cryptography.TripleDES 类
简单说明: 表示三重数据加密标准算法的基类,TripleDES 的所有实现都必须从此基类派生。是从 SymmetricAlgorithm 类里继承出来。TripleDES 使用 DES 算法的三次连续迭代。它可以使用两个或三个 56 位密钥。
使用目的:比较安全的加密一种方式,密钥和矢量的不同,会生产不同的加密字串。因为是DES算法的三次连续迭代,而且算法可逆,这样对于数据保密性和可恢复性都不错。

二、代码示例

using System; 
using System.Security; 
using System.Security.Cryptography; 
using System.IO; 
using System.Text; 
using System.Threading; 
namespace TRIP3DES 
{ 
/// <summary> 
/// Class1 的摘要说明。 
/// </summary> 
public class dllEncrypt 
{ 
//密钥 
private const string sKey = "qJzGEh6hESZDVJeCnFPGuxzaiB7NLQM3"; 
//矢量,矢量可以为空 
private const string sIV = "qcDY6X+aPLw="; 
//构造一个对称算法 
private SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider(); 
public dllEncrypt(){} 
#region public string EncryptString(string Value) 
/// <summary> 
/// 加密字符串 
/// </summary> 
/// <param name="Value">输入的字符串</param> 
/// <returns>加密后的字符串</returns> 
public string EncryptString(string Value) 
{ 
ICryptoTransform ct; 
MemoryStream ms; 
CryptoStream cs; 
byte[] byt; 
mCSP.Key = Convert.FromBase64String(sKey); 
mCSP.IV = Convert.FromBase64String(sIV); 
//指定加密的运算模式 
mCSP.Mode = System.Security.Cryptography.CipherMode.ECB; 
//获取或设置加密算法的填充模式 
mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7; 
ct = mCSP.CreateEncryptor(mCSP.Key, mCSP.IV); 
byt = Encoding.UTF8.GetBytes(Value); 
ms = new MemoryStream(); 
cs = new CryptoStream(ms, ct, CryptoStreamMode.Write); 
cs.Write(byt, 0, byt.Length); 
cs.FlushFinalBlock(); 
cs.Close(); 
return Convert.ToBase64String(ms.ToArray()); 
} 
#endregion 
#region public string DecryptString(string Value) 
/// <summary> 
/// 解密字符串 
/// </summary> 
/// <param name="Value">加过密的字符串</param> 
/// <returns>解密后的字符串</returns> 
public string DecryptString(string Value) 
{ 
ICryptoTransform ct; 
MemoryStream ms; 
CryptoStream cs; 
byte[] byt; 
mCSP.Key = Convert.FromBase64String(sKey); 
mCSP.IV = Convert.FromBase64String(sIV); 
mCSP.Mode = System.Security.Cryptography.CipherMode.ECB; 
mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7; 
ct = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV); 
byt = Convert.FromBase64String(Value); 
ms = new MemoryStream(); 
cs = new CryptoStream(ms, ct, CryptoStreamMode.Write); 
cs.Write(byt, 0, byt.Length); 
cs.FlushFinalBlock(); 
cs.Close(); 
return Encoding.UTF8.GetString(ms.ToArray()); 
} 
#endregion 
} 
} 

三、总结

做成类库对于密钥和矢量的保管比较方便,输入输出全部是string型变量,这样也比较方便,密钥的生成可以用mSCP. GenerateKey()来生成,矢量的生成也可以用mCSP.GenerateIV()来生成。大家也可以自己灵活的编写符合自己的3DES算法。

相关文章

网友评论

    本文标题:TripleDES加密

    本文链接:https://www.haomeiwen.com/subject/nhimbttx.html