using FSBox.Common;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace FSBox.FrontApi.common
{
public class Aesclass
{
/// <summary>
/// 加密
/// </summary>
/// <param name="toEncrypt"></param>
/// <param name="key"></param>
/// <param name="iv"></param>
/// <returns></returns>
public static string AesEncrypt(string toEncrypt, string key, string iv)
{
byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);
byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key);//注意编码格式(utf8编码 UTF8Encoding)
byte[] ivArray = UTF8Encoding.UTF8.GetBytes(iv);
RijndaelManaged rDel = new RijndaelManaged();
rDel.Key = keyArray;
rDel.IV = ivArray;
rDel.Mode = CipherMode.CBC;
//rDel.Padding = PaddingMode.Zeros;
ICryptoTransform cTransform = rDel.CreateEncryptor();//加密
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return Convert.ToBase64String(resultArray, 0, resultArray.Length);
}
/// <summary>
/// 解密
/// </summary>
/// <param name="toDecrypt"></param>
/// <param name="key"></param>
/// <param name="iv"></param>
/// <returns></returns>
public static string AesDecrypt(string toDecrypt, string key, string iv)
{
byte[] toEncryptArray = Convert.FromBase64String(toDecrypt);
byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key);//注意编码格式(utf8编码 UTF8Encoding)
byte[] ivArray = UTF8Encoding.UTF8.GetBytes(iv);
RijndaelManaged rDel = new RijndaelManaged();
rDel.Key = keyArray;
rDel.IV = ivArray;
rDel.Mode = CipherMode.CBC;
//rDel.Padding = PaddingMode.Zeros;
ICryptoTransform cTransform = rDel.CreateDecryptor();//解密
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return UTF8Encoding.UTF8.GetString(resultArray);
}
}
}
C# AES-128-CBC 加密 解密
最新推荐文章于 2024-03-27 16:46:12 发布
本文介绍了如何使用C#的Aesclass类实现AES加密和解密功能,包括UTF8编码处理和CBC模式操作。适合理解基础加密技术的开发者参考。
284

被折叠的 条评论
为什么被折叠?



