日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

c#AES加密解密

發布時間:2025/4/5 C# 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c#AES加密解密 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

AES是一個對稱密碼,旨在取代DES成為廣泛使用的標準。密碼學中的高級加密標準(Advanced?Encryption?Standard,AES),又稱Rijndael加密法,是美國聯邦政府采用的一種區塊加密標準。這個標準用來替代原先的DES,已經被多方分析且廣為全世界所使用。

AES加密數據塊分組長度必須為128比特,密鑰長度可以是128比特、192比特、256比特中的任意一個(如果數據塊及密鑰長度不足時,會補齊)。AES加密有很多輪的重復和變換。大致步驟如下:1、密鑰擴展(KeyExpansion),2、初始輪(Initial Round),3、重復輪(Rounds),每一輪又包括:SubBytes、ShiftRows、MixColumns、AddRoundKey,4、最終輪(Final Round),最終輪沒有MixColumns。

注:經過個人測試,同一個字符串在不同設備,地域解密,加密是不一樣的,必須加密和解密的秘鑰要是一樣的,才能解密成功;

下面我們就來學習一下C#里如何利用AES加密解密

其實AES加解密的代碼大都一致,可以從網上復制過來直接調用的

1.創建一個web窗體Form1.cs來測試

如:

后臺代碼:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Security.Cryptography;//記得要引入該類庫 using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace AES加密解密 {public partial class Form1 : Form{public Form1(){InitializeComponent();}/// <summary> /// AES加密 /// </summary> /// <param name="encryptStr">明文</param> /// <param name="key">密鑰</param> /// <returns></returns> public static string Encrypt(string encryptStr, string key){byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key);byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(encryptStr);RijndaelManaged rDel = new RijndaelManaged();rDel.Key = keyArray;rDel.Mode = CipherMode.ECB;rDel.Padding = PaddingMode.PKCS7;ICryptoTransform cTransform = rDel.CreateEncryptor();byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);return Convert.ToBase64String(resultArray, 0, resultArray.Length);}//ToBase64String的秘鑰為32位/// <summary> /// AES解密 /// </summary> /// <param name="decryptStr">密文</param> /// <param name="key">密鑰</param> /// <returns></returns> internal static string Decrypt(string decryptStr, string key){byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key);byte[] toEncryptArray = Convert.FromBase64String(decryptStr);RijndaelManaged rDel = new RijndaelManaged();rDel.Key = keyArray;rDel.Mode = CipherMode.ECB;rDel.Padding = PaddingMode.PKCS7;ICryptoTransform cTransform = rDel.CreateDecryptor();byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);return UTF8Encoding.UTF8.GetString(resultArray);}private void button1_Click(object sender, EventArgs e){//加密richTextBox1.Text =Encrypt(textBox1.Text,"12345678901234567890123456789012");//AES256加密要32位鍵值}//秘鑰位數不對也不能加解密成功private void button2_Click(object sender, EventArgs e){//解密richTextBox2.Text = Decrypt(richTextBox1.Text, "12345678901234567890123456789012");//(密文,秘鑰) }private void Form1_Load(object sender, EventArgs e){}} }

?

2.運行結果

3.當你把解密后的字符串拿到網上在線解密時,誒呀,不一樣

加密在一定程度上保證了你數據的安全

加密有對稱加密和不對稱加密,對稱加密一般有兩個秘鑰,一個為公鑰就是大家都知道的,一個為私鑰只有自己知道。

?

轉載于:https://www.cnblogs.com/kalezhangtao/p/9085308.html

總結

以上是生活随笔為你收集整理的c#AES加密解密的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。