首页主机资讯如何在C#中使用对称加密技术

如何在C#中使用对称加密技术

时间2024-07-15 20:26:03发布访客分类主机资讯浏览985
导读:在C#中使用对称加密技术可以通过使用内置的加密算法类来实现。以下是一种在C#中使用对称加密技术的示例: using System; using System.Security.Cryptography; using System.Text;...

在C#中使用对称加密技术可以通过使用内置的加密算法类来实现。以下是一种在C#中使用对称加密技术的示例:

using System;
    
using System.Security.Cryptography;
    
using System.Text;


class Program
{

    static void Main()
    {
    
        string originalText = "Hello World!";
    
        string key = "mysecretkey";
     // 16 bytes key for AES encryption

        byte[] encryptedData = Encrypt(originalText, key);
    
        string decryptedText = Decrypt(encryptedData, key);


        Console.WriteLine($"Original Text: {
originalText}
    ");

        Console.WriteLine($"Encrypted Data: {
Convert.ToBase64String(encryptedData)}
    ");

        Console.WriteLine($"Decrypted Text: {
decryptedText}
    ");

    }


    static byte[] Encrypt(string text, string key)
    {

        using (Aes aes = Aes.Create())
        {
    
            aes.Key = Encoding.UTF8.GetBytes(key);
    
            aes.IV = new byte[16];
 // 16 bytes Initialization Vector for AES encryption

            using (ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV))
            {
    
                byte[] data = Encoding.UTF8.GetBytes(text);


                using (MemoryStream ms = new MemoryStream())
                {

                    using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
                    {
    
                        cs.Write(data, 0, data.Length);
    
                        cs.FlushFinalBlock();
    

                        return ms.ToArray();

                    }

                }

            }

        }

    }


    static string Decrypt(byte[] encryptedData, string key)
    {

        using (Aes aes = Aes.Create())
        {
    
            aes.Key = Encoding.UTF8.GetBytes(key);
    
            aes.IV = new byte[16];
 // 16 bytes Initialization Vector for AES encryption

            using (ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.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();

                        }

                    }

                }

            }

        }

    }

}
    

在上面的示例中,我们使用了AES对称加密算法来加密和解密文本数据。首先,我们生成一个16字节的密钥和初始化向量(IV),然后使用这些密钥和IV来创建加密器和解密器。加密器和解密器将文本数据转换为字节数组,并对其进行加密和解密。最后,我们将加密后的数据和解密后的文本打印出来。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在C#中使用对称加密技术
本文地址: https://pptw.com/jishu/688515.html
如何选择C#对称加密的密钥 C#对称加密有哪些常见算法

游客 回复需填写必要信息