在C#中使用RijndaelManaged實現AES加密
高級加密標準 (AES) 是一種對稱分組密碼,用於保護敏感數據。在C#中實現AES有多種方法。
使用內置加密提供程序
最直接的方法是使用內置的加密提供程序RijndaelManaged。它提供了一種簡單的加密和解密方法。有關詳細信息,請參閱以下鏈接:
https://www.php.cn/link/90949b6cfd26574a426edea70f6f3485
自定義代碼示例
以下代碼片段演示了RijndaelManaged的使用:
<code class="language-csharp">using System; using System.IO; using System.Security.Cryptography; namespace RijndaelManagedExample { class RijndaelExample { static void Main(string[] args) { try { string original = "这是一些需要加密的数据!"; using (var myRijndael = new RijndaelManaged()) { myRijndael.GenerateKey(); myRijndael.GenerateIV(); byte[] encrypted = EncryptStringToBytes(original, myRijndael.Key, myRijndael.IV); string roundtrip = DecryptStringFromBytes(encrypted, myRijndael.Key, myRijndael.IV); Console.WriteLine("原文: {0}", original); Console.WriteLine("解密后: {0}", roundtrip); } } catch (Exception e) { Console.WriteLine("错误: {0}", e.Message); } } static byte[] EncryptStringToBytes(string plainText, byte[] Key, byte[] IV) { using (var rijAlg = new RijndaelManaged()) { rijAlg.Key = Key; rijAlg.IV = IV; using (var encryptor = rijAlg.CreateEncryptor(rijAlg.Key, rijAlg.IV)) using (var msEncrypt = new MemoryStream()) using (var csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)) using (var swEncrypt = new StreamWriter(csEncrypt)) { swEncrypt.Write(plainText); return msEncrypt.ToArray(); } } } static string DecryptStringFromBytes(byte[] cipherText, byte[] Key, byte[] IV) { using (var rijAlg = new RijndaelManaged()) { rijAlg.Key = Key; rijAlg.IV = IV; using (var decryptor = rijAlg.CreateDecryptor(rijAlg.Key, rijAlg.IV)) using (var msDecrypt = new MemoryStream(cipherText)) using (var csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)) using (var srDecrypt = new StreamReader(csDecrypt)) { return srDecrypt.ReadToEnd(); } } } } }</code>
這段代碼展示瞭如何使用RijndaelManaged
類在C#中進行AES加密和解密。 它包含了錯誤處理,並使用了更簡潔的using
語句塊來管理資源。 請注意,實際應用中需要考慮密鑰管理和更安全的密鑰生成方法。
以上是如何使用RijndaelManed在C#中實現AES加密?的詳細內容。更多資訊請關注PHP中文網其他相關文章!