手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#的3DES加密解密算法实例代码
C#的3DES加密解密算法实例代码
摘要:C#类如下:复制代码代码如下:usingSystem;usingSystem.Collections.Generic;usingSystem...

C#类如下:

复制代码 代码如下:

using System;

using System.Collections.Generic;

using System.Text;

using System.Security.Cryptography;

using System.IO;

namespace ConsoleApplication1

{

/// <summary>

/// 加解密类

/// </summary>

public class EncryptHelper

{

//构造一个对称算法

private SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider();

#region 加密解密函数

/// <summary>

/// 字符串的加密

/// </summary>

/// <param name="Value">要加密的字符串</param>

/// <param name="sKey">密钥,必须32位</param>

/// <param name="sIV">向量,必须是12个字符</param>

/// <returns>加密后的字符串</returns>

public string EncryptString(string Value, string sKey,string sIV)

{

try

{

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());

}

catch (Exception ex)

{

//MessageBox.Show(ex.Message, "出现异常", MessageBoxButtons.OK, MessageBoxIcon.Warning);

return ("Error in Encrypting " + ex.Message);

}

}

/// <summary>

/// 解密字符串

/// </summary>

/// <param name="Value">加密后的字符串</param>

/// <param name="sKey">密钥,必须32位</param>

/// <param name="sIV">向量,必须是12个字符</param>

/// <returns>解密后的字符串</returns>

public string DecryptString(string Value, string sKey, string sIV)

{

try

{

ICryptoTransform ct;//加密转换运算

MemoryStream ms;//内存流

CryptoStream cs;//数据流连接到数据加密转换的流

byte[] byt;

//将3DES的密钥转换成byte

mCSP.Key = Convert.FromBase64String(sKey);

//将3DES的向量转换成byte

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());

}

catch (Exception ex)

{

//MessageBox.Show(ex.Message, "出现异常", MessageBoxButtons.OK, MessageBoxIcon.Warning);

return ("Error in Decrypting " + ex.Message);

}

}

#endregion

}

}

调用方法如下:

复制代码 代码如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

EncryptHelper helper = new EncryptHelper();

//加密

string oldValue = "13800138000";

//加密后结果

//密钥,必须32位

string sKey = "qJzGEh6hESZDVJeCnFPGuxzaiB7NLQM5";

//向量,必须是12个字符

string sIV = "andyliu1234=";

//print

string newValue = helper.EncryptString(oldValue,sKey,sIV);

Console.WriteLine("加密后:"+ newValue);

//解密

string desValue = helper.DecryptString(newValue,sKey,sIV);

//

Console.WriteLine("解密后:"+ desValue);

Console.ReadLine();

}

}

}

【C#的3DES加密解密算法实例代码】相关文章:

C#求解哈夫曼树,实例代码

C#跨窗体操作(引用传递) 实例代码

c#文件的复制,移动,创建(实例代码)

C#打印出正等腰三角形实例代码

c# SendMail发送邮件实例代码

c#初学简单程序实例代码介绍

c# 图片加密解密的实例代码

.net C# 实现任意List的笛卡尔乘积算法代码

C#实现图片分割方法与代码

C#加密解密文件小工具实现代码

精品推荐
分类导航