700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 安全架构-加密算法-3DES加密算法.NET C#实现

安全架构-加密算法-3DES加密算法.NET C#实现

时间:2023-11-14 23:06:59

相关推荐

安全架构-加密算法-3DES加密算法.NET C#实现

C# 3Des加密解密

C#使用填充模式"PaddingMode.PKCS7和CipherMode.CBC",可按需修改,使用CBC模式的话在C#下必须传入加密向量IV(固定长度8位),默认"12345678",加密密钥和IV双方约定好即可,如果是ECB编码模式,那么就无须使用加密向量。

最主要的类为:TripleDESCryptoServiceProvider

C#代码如下:

using System;using System.IO;using System.Security.Cryptography;using System.Text;namespace TCWireless.Utility{public class DESHelper{#region 3des加密/// <summary>/// 3des ecb模式加密/// </summary>/// <param name="aStrString">待加密的字符串</param>/// <param name="aStrKey">密钥</param>/// <param name="iv">加密矢量:只有在CBC解密模式下才适用</param>/// <param name="mode">运算模式</param>/// <returns>加密后的字符串</returns>public static string Encrypt3Des(string aStrString, string aStrKey, CipherMode mode = CipherMode.ECB, string iv = "12345678"){try{var des = new TripleDESCryptoServiceProvider{Key = Encoding.UTF8.GetBytes(aStrKey),Mode = mode};if (mode == CipherMode.CBC){des.IV = Encoding.UTF8.GetBytes(iv);}var desEncrypt = des.CreateEncryptor();byte[] buffer = Encoding.UTF8.GetBytes(aStrString);return Convert.ToBase64String(desEncrypt.TransformFinalBlock(buffer, 0, buffer.Length));}catch (Exception e){return string.Empty;}}#endregion#region 3des解密/// <summary>/// des 解密/// </summary>/// <param name="aStrString">加密的字符串</param>/// <param name="aStrKey">密钥</param>/// <param name="iv">解密矢量:只有在CBC解密模式下才适用</param>/// <param name="mode">运算模式</param>/// <returns>解密的字符串</returns>public static string Decrypt3Des(string aStrString, string aStrKey, CipherMode mode = CipherMode.ECB, string iv = "12345678"){try{var des = new TripleDESCryptoServiceProvider{Key = Encoding.UTF8.GetBytes(aStrKey),Mode = mode,Padding = PaddingMode.PKCS7};if (mode == CipherMode.CBC){des.IV = Encoding.UTF8.GetBytes(iv);}var desDecrypt = des.CreateDecryptor();var result = "";byte[] buffer = Convert.FromBase64String(aStrString);result = Encoding.UTF8.GetString(desDecrypt.TransformFinalBlock(buffer, 0, buffer.Length));return result;}catch (Exception e){return string.Empty;}}#endregion}}

参考资料:

/zlj-rechio/p/4250216.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。