91网首页-91网页版-91网在线观看-91网站免费观看-91网站永久视频-91网站在线播放

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#對稱加密(AES加密)每次生成的結果都不同的實現思路和代碼實例

admin
2023年3月22日 18:28 本文熱度 1418

這篇文章主要介紹了C#對稱加密(AES加密)每次生成的結果都不同的實現思路和代碼實例,每次解密時從密文中截取前16位,這就是實現隨機的奧秘,本文同時給出了實現代碼,需要的朋友可以參考下。

思路:使用隨機向量,把隨機向量放入密文中,每次解密時從密文中截取前16位,其實就是我們之前加密的隨機向量。

代碼:

  1. public static string Encrypt(string plainText, string AESKey) 

  2. RijndaelManaged rijndaelCipher = new RijndaelManaged(); 

  3. byte[] inputByteArray = Encoding.UTF8.GetBytes(plainText);//得到需要加密的字節數組 

  4. rijndaelCipher.Key = Convert.fromBase64String(AESKey);//加解密雙方約定好密鑰:AESKey 

  5. rijndaelCipher.GenerateIV(); 

  6. byte[] keyIv = rijndaelCipher.IV; 

  7. byte[] cipherBytes = null

  8. using (MemoryStream ms = new MemoryStream()) 

  9. using (CryptoStream cs = new CryptoStream(ms, rijndaelCipher.createEncryptor(), CryptoStreamMode.Write)) 

  10. cs.Write(inputByteArray, 0, inputByteArray.Length); 

  11. cs.FlushFinalBlock(); 

  12. cipherBytes = ms.ToArray();//得到加密后的字節數組 

  13. cs.Close(); 

  14. ms.Close(); 

  15. var allEncrypt = new byte[keyIv.Length + cipherBytes.Length]; 

  16. Buffer.BlockCopy(keyIv, 0, allEncrypt, 0, keyIv.Length); 

  17. Buffer.BlockCopy(cipherBytes, 0, allEncrypt, keyIv.Length * sizeof(byte), cipherBytes.Length); 

  18. return Convert.ToBase64String(allEncrypt); 

  19.  

  20. public static string Decrypt(string showText, string AESKey) 

  21. string result = string.Empty; 

  22. try 

  23. byte[] cipherText = Convert.fromBase64String(showText); 

  24. int length = cipherText.Length; 

  25. SymmetricAlgorithm rijndaelCipher = Rijndael.create(); 

  26. rijndaelCipher.Key = Convert.fromBase64String(AESKey);//加解密雙方約定好的密鑰 

  27. byte[] iv = new byte[16]; 

  28. Buffer.BlockCopy(cipherText, 0, iv, 0, 16); 

  29. rijndaelCipher.IV = iv; 

  30. byte[] decryptBytes = new byte[length - 16]; 

  31. byte[] passwdText = new byte[length - 16]; 

  32. Buffer.BlockCopy(cipherText, 16, passwdText, 0, length - 16); 

  33. using (MemoryStream ms = new MemoryStream(passwdText)) 

  34. using (CryptoStream cs = new CryptoStream(ms, rijndaelCipher.createDecryptor(), CryptoStreamMode.Read)) 

  35. cs.Read(decryptBytes, 0, decryptBytes.Length); 

  36. cs.Close(); 

  37. ms.Close(); 

  38. result = Encoding.UTF8.GetString(decryptBytes).Replace("/0"""); ///將字符串后尾的'/0'去掉 

  39. catch { } 

  40. return result; 

調用: 

  1. string jiaMi = MyAESTools.Encrypt(textBox1.Text, "abcdefgh12345678abcdefgh12345678"); 

  2.  

  3. string jieMi = MyAESTools.Decrypt(textBox3.Text, "abcdefgh12345678abcdefgh12345678"); 


該文章在 2023/3/22 18:28:42 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产凸凹视频 | 97干色| 麻花影院 | 国产中文字| 尤物视频一区二区 | 丝袜美腿中文字幕 | 日本免费一区二 | 区三四区视频黑人 | 欧美综合在线的 | 成人午夜电影大全 | 国产福利91视频 | 国产亚洲中文 | 国产91精品成人 | 精品精品国产高清 | 午夜福利写真片精品 | 国产精品国产高清 | 日韩欧美福利在线 | 日本电影在线观看黄 | 国产乱偷国产馆 | 国产萝控精品 | 成人国产免 | 国产主播在线资源网 | 国产全部理论 | 欧美日韩色另类综合 | 日本不卡a | 99偷拍 | 国精品片在线视频 | 日韩视频第二页 | 国产福利91视频 | 国产乱子伦不卡视频 | 不卡在线观看 | 99爱精品视频 | 国产对白合 | 精品国产| 国产欧美二区三区 | 成人一区视频入口 | 片午夜在线观看 | 久色悠悠 | 欧美一级黄带 | 91免费入口| 韩国成人一区 |