TripleDES加密

表示三重数据加密标准算法的基类,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算法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文主要介绍移动端的加解密算法的分类、其优缺点特性及应用,帮助读者由浅入深地了解和选择加解密算法。文中会包含算法的...
    苹果粉阅读 11,567评论 5 29
  • 概述 之前一直对加密相关的算法知之甚少,只知道类似DES、RSA等加密算法能对数据传输进行加密,且各种加密算法各有...
    Henryzhu阅读 3,048评论 0 14
  • 武汉的。求建议 最好有经验的 凤凰篝火晚会之类的怎么样😏
    七届书生阅读 126评论 0 1
  • 刘郎与织女的距离 隔着整个七夕 而我和你的距离 远不止一千多公里
    慕星读者OR独者阅读 188评论 0 2
  • 她是云国最不受宠的五公主,自幼便受尽欺辱。 他是华国的三皇子,自记事起便在云国为质。 一场宫宴让他们相遇,而她看见...
    我在搜索着幸福阅读 353评论 0 0