首页主机资讯C#对称加密怎样快速入门

C#对称加密怎样快速入门

时间2024-07-15 20:12:03发布访客分类主机资讯浏览371
导读:要快速入门C#对称加密,你可以使用.NET Framework中的System.Security.Cryptography命名空间提供的类来实现。以下是一个简单的示例代码,演示如何使用AES算法进行对称加密和解密: using System...

要快速入门C#对称加密,你可以使用.NET Framework中的System.Security.Cryptography命名空间提供的类来实现。以下是一个简单的示例代码,演示如何使用AES算法进行对称加密和解密:

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


class Program
{

    static void Main()
    {
    
        string plainText = "Hello, world!";
    
        string key = "0123456789abcdef";
     // 16字节的AES密钥
        string iv = "abcdef9876543210";
     // 16字节的初始化向量

        byte[] encryptedBytes = EncryptStringToBytes_Aes(plainText, key, iv);
    
        string decryptedText = DecryptStringFromBytes_Aes(encryptedBytes, key, iv);
    

        Console.WriteLine("Encrypted: " + Convert.ToBase64String(encryptedBytes));
    
        Console.WriteLine("Decrypted: " + decryptedText);

    }


    static byte[] EncryptStringToBytes_Aes(string plainText, string key, string iv)
    {
    
        byte[] encrypted;


        using (Aes aesAlg = Aes.Create())
        {
    
            aesAlg.Key = Encoding.UTF8.GetBytes(key);
    
            aesAlg.IV = Encoding.UTF8.GetBytes(iv);
    

            ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);


            using (MemoryStream msEncrypt = new MemoryStream())
            {

                using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
                {

                    using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
                    {
    
                        swEncrypt.Write(plainText);

                    }
    
                    encrypted = msEncrypt.ToArray();

                }

            }

        }
    

        return encrypted;

    }


    static string DecryptStringFromBytes_Aes(byte[] cipherText, string key, string iv)
    {
    
        string plaintext = null;


        using (Aes aesAlg = Aes.Create())
        {
    
            aesAlg.Key = Encoding.UTF8.GetBytes(key);
    
            aesAlg.IV = Encoding.UTF8.GetBytes(iv);
    

            ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);


            using (MemoryStream msDecrypt = new MemoryStream(cipherText))
            {

                using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
                {

                    using (StreamReader srDecrypt = new StreamReader(csDecrypt))
                    {
    
                        plaintext = srDecrypt.ReadToEnd();

                    }

                }

            }

        }
    

        return plaintext;

    }

}
    

在这个示例中,我们使用了AES算法来加密和解密字符串。你可以根据自己的需求调整密钥和初始化向量的长度,并根据具体情况选择其他对称加密算法。希望这能帮助你快速入门C#对称加密。

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


若转载请注明出处: C#对称加密怎样快速入门
本文地址: https://pptw.com/jishu/688508.html
C#对称加密在网络传输中如何应用 C#如何测试对称加密的安全性

游客 回复需填写必要信息