c# rijndaelmanaged在.NET框架中的使用示例

   2024-10-01 7630
核心提示:RijndaelManaged类是.NET框架中用于对称加密和解密数据的类。下面是一个简单的示例,演示如何使用RijndaelManaged类进行数据加密

RijndaelManaged类是.NET框架中用于对称加密和解密数据的类。下面是一个简单的示例,演示如何使用RijndaelManaged类进行数据加密和解密:

using System;using System.IO;using System.Security.Cryptography;using System.Text;public class Program{    static void Main()    {        string plainText = "Hello, world!";        string key = "0123456789abcdef";        string iv = "fedcba9876543210";        byte[] encryptedData = EncryptData(plainText, key, iv);        string decryptedText = DecryptData(encryptedData, key, iv);        Console.WriteLine("Encrypted Data: " + Convert.ToBase64String(encryptedData));        Console.WriteLine("Decrypted Text: " + decryptedText);    }    static byte[] EncryptData(string plainText, string key, string iv)    {        using (RijndaelManaged rijndael = new RijndaelManaged())        {            rijndael.Key = Encoding.UTF8.GetBytes(key);            rijndael.IV = Encoding.UTF8.GetBytes(iv);            ICryptoTransform encryptor = rijndael.CreateEncryptor(rijndael.Key, rijndael.IV);            using (MemoryStream ms = new MemoryStream())            {                using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))                {                    byte[] plainBytes = Encoding.UTF8.GetBytes(plainText);                    cs.Write(plainBytes, 0, plainBytes.Length);                }                return ms.ToArray();            }        }    }    static string DecryptData(byte[] encryptedData, string key, string iv)    {        using (RijndaelManaged rijndael = new RijndaelManaged())        {            rijndael.Key = Encoding.UTF8.GetBytes(key);            rijndael.IV = Encoding.UTF8.GetBytes(iv);            ICryptoTransform decryptor = rijndael.CreateDecryptor(rijndael.Key, rijndael.IV);            using (MemoryStream ms = new MemoryStream(encryptedData))            {                using (CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))                {                    using (StreamReader sr = new StreamReader(cs))                    {                        return sr.ReadToEnd();                    }                }            }        }    }}

在上面的示例中,我们定义了EncryptData和DecryptData两个方法来分别进行数据的加密和解密。在Main方法中,我们演示了如何使用这两个方法来加密和解密数据。请注意,需要提供一个密钥和初始化向量(IV)来进行加密和解密操作。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号