RijndaelManaged 自定义key和iv
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Security.Cryptography;
namespace SynEncrption
{
public partial class Form1 : Form
{
private string key = "abcde234123@#ew9182h4r1238132&AUIFQEIfaidsfnqeiqewrndsifqnwqiwernqewiqeiqe";
private string iv = "s9afn1@#$!#asdfiqwnerasidfnqwiesndaf912#$!@341";
public Form1()
{
InitializeComponent();
}
private void smbEncrpty_Click(object sender, EventArgs e)
{
string text = encrption(this.memoEdit1.Text, key.Substring(0, 32), iv.Substring(0, 16));
this.memoEdit2.Text = text;
}
private string encrption(string input, string key, string iv)
{
MemoryStream msEncrypt = null;
RijndaelManaged aesAlg = null;
string sresult = string.Empty;
try
{
byte[] keys = System.Text.Encoding.UTF8.GetBytes(key);
byte[] ivs = System.Text.Encoding.UTF8.GetBytes(iv);
aesAlg = new RijndaelManaged();
aesAlg.Key = keys;
aesAlg.IV = ivs;
ICryptoTransform ict = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);
msEncrypt = new MemoryStream();
using (CryptoStream cts = new CryptoStream(msEncrypt, ict, CryptoStreamMode.Write))
{
using (StreamWriter sw = new StreamWriter(cts))
{
sw.Write(input);
}
}
}
finally
{
if (aesAlg != null)
{
aesAlg.Dispose();
aesAlg.Clear();
}
}
if (msEncrypt != null)
{
byte[] content = msEncrypt.ToArray();
sresult = Convert.ToBase64String(content);
}
return sresult;
}
private string decrption(string input, string key, string iv)
{
string sresult = string.Empty;
byte[] keys = System.Text.Encoding.UTF8.GetBytes(key);
byte[] ivs = System.Text.Encoding.UTF8.GetBytes(iv);
byte[] inputbytes = Convert.FromBase64String(input);
RijndaelManaged rm =null;
try
{
rm = new RijndaelManaged();
rm.Key = keys;
rm.IV = ivs;
ICryptoTransform ict = rm.CreateDecryptor(rm.Key, rm.IV);
using (MemoryStream ms = new MemoryStream(inputbytes))
{
using (CryptoStream cs = new CryptoStream(ms, ict, CryptoStreamMode.Read))
{
using (StreamReader sr = new StreamReader(cs))
{
sresult = sr.ReadToEnd();
}
}
}
}
finally
{
if (rm != null)
{
rm.Dispose();
rm.Clear();
}
}
return sresult;
}
private void smbDecrypt_Click(object sender, EventArgs e)
{
string text = decrption(this.memoEdit2.Text, key.Substring(0, 32), iv.Substring(0, 16));
this.memoEdit3.Text = text;
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Security.Cryptography;
namespace SynEncrption
{
public partial class Form1 : Form
{
private string key = "abcde234123@#ew9182h4r1238132&AUIFQEIfaidsfnqeiqewrndsifqnwqiwernqewiqeiqe";
private string iv = "s9afn1@#$!#asdfiqwnerasidfnqwiesndaf912#$!@341";
public Form1()
{
InitializeComponent();
}
private void smbEncrpty_Click(object sender, EventArgs e)
{
string text = encrption(this.memoEdit1.Text, key.Substring(0, 32), iv.Substring(0, 16));
this.memoEdit2.Text = text;
}
private string encrption(string input, string key, string iv)
{
MemoryStream msEncrypt = null;
RijndaelManaged aesAlg = null;
string sresult = string.Empty;
try
{
byte[] keys = System.Text.Encoding.UTF8.GetBytes(key);
byte[] ivs = System.Text.Encoding.UTF8.GetBytes(iv);
aesAlg = new RijndaelManaged();
aesAlg.Key = keys;
aesAlg.IV = ivs;
ICryptoTransform ict = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);
msEncrypt = new MemoryStream();
using (CryptoStream cts = new CryptoStream(msEncrypt, ict, CryptoStreamMode.Write))
{
using (StreamWriter sw = new StreamWriter(cts))
{
sw.Write(input);
}
}
}
finally
{
if (aesAlg != null)
{
aesAlg.Dispose();
aesAlg.Clear();
}
}
if (msEncrypt != null)
{
byte[] content = msEncrypt.ToArray();
sresult = Convert.ToBase64String(content);
}
return sresult;
}
private string decrption(string input, string key, string iv)
{
string sresult = string.Empty;
byte[] keys = System.Text.Encoding.UTF8.GetBytes(key);
byte[] ivs = System.Text.Encoding.UTF8.GetBytes(iv);
byte[] inputbytes = Convert.FromBase64String(input);
RijndaelManaged rm =null;
try
{
rm = new RijndaelManaged();
rm.Key = keys;
rm.IV = ivs;
ICryptoTransform ict = rm.CreateDecryptor(rm.Key, rm.IV);
using (MemoryStream ms = new MemoryStream(inputbytes))
{
using (CryptoStream cs = new CryptoStream(ms, ict, CryptoStreamMode.Read))
{
using (StreamReader sr = new StreamReader(cs))
{
sresult = sr.ReadToEnd();
}
}
}
}
finally
{
if (rm != null)
{
rm.Dispose();
rm.Clear();
}
}
return sresult;
}
private void smbDecrypt_Click(object sender, EventArgs e)
{
string text = decrption(this.memoEdit2.Text, key.Substring(0, 32), iv.Substring(0, 16));
this.memoEdit3.Text = text;
}
}
}
标签:
c#
, RijndaelManaged
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述