复制

TripleDES加密解密工具

TripleDES加解密工具是一款基于TripleDES算法的加密、解密工具,可以轻松为大家进行TripleDES的加密和解密,用户在文本框中输入待加密的字符串再输入密钥(也可不输入密钥)即可一键加密字符串,同时还具有针对加密处理后的字符串进行一键解密的功能,非常简单实用。

该工具不保存任何用户操作信息,请大家放心使用。

TripleDES是什么

Triple DES又称3DES,是 DES 加密算法的一种模式,它使用3条56位的 密钥对数据进行三次加密,因此也叫三重数据加密标准。

数据加密标准(DES)是美国的一种由来已久的加密标准,它使用 对称密钥 加密法,并于1981年被 ANSI组织规范为ANSI X.3.92。DES使用56位密钥和密码块的方法,而在密码块的方法中,文本被分成64位大小的文本块然后再进行加密。比起最初的DES,3DES更为安全。

3DES(即Triple DES)是DES向AES过渡的 加密算法(1999年,NIST将3-DES指定为过渡的加密标准),加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的 密钥,M代表明文,C代表密文,这样:

3DES加密过程为:C=Ek3(Dk2(Ek1(M)))

3DES解密过程为:M=Dk1(EK2(Dk3(C)))

TripleDES三重加密代码示例

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