首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在C# .net 3.5中加密和解密字符串

在C# .NET 3.5中,可以使用System.Security.Cryptography命名空间中的类来加密和解密字符串。常用的加密算法有对称加密和非对称加密。

对称加密使用相同的密钥进行加密和解密,速度较快。常见的对称加密算法有DES、3DES和AES。在C# .NET 3.5中,可以使用System.Security.Cryptography.SymmetricAlgorithm类和其派生类进行对称加密操作。

示例代码:

代码语言:txt
复制
using System;
using System.Security.Cryptography;
using System.Text;

public class EncryptionHelper
{
    // 对称加密算法密钥,长度根据算法不同而不同
    private static byte[] key = Encoding.UTF8.GetBytes("12345678");

    // 对称加密算法初始化向量,长度根据算法不同而不同
    private static byte[] iv = Encoding.UTF8.GetBytes("87654321");

    // 使用DES算法加密字符串
    public static string EncryptDES(string plainText)
    {
        using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
        {
            byte[] inputBytes = Encoding.UTF8.GetBytes(plainText);
            using (MemoryStream memoryStream = new MemoryStream())
            {
                using (CryptoStream cryptoStream = new CryptoStream(memoryStream, des.CreateEncryptor(key, iv), CryptoStreamMode.Write))
                {
                    cryptoStream.Write(inputBytes, 0, inputBytes.Length);
                    cryptoStream.FlushFinalBlock();
                    return Convert.ToBase64String(memoryStream.ToArray());
                }
            }
        }
    }

    // 使用DES算法解密字符串
    public static string DecryptDES(string encryptedText)
    {
        using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
        {
            byte[] inputBytes = Convert.FromBase64String(encryptedText);
            using (MemoryStream memoryStream = new MemoryStream())
            {
                using (CryptoStream cryptoStream = new CryptoStream(memoryStream, des.CreateDecryptor(key, iv), CryptoStreamMode.Write))
                {
                    cryptoStream.Write(inputBytes, 0, inputBytes.Length);
                    cryptoStream.FlushFinalBlock();
                    return Encoding.UTF8.GetString(memoryStream.ToArray());
                }
            }
        }
    }

    // 使用AES算法加密字符串
    public static string EncryptAES(string plainText)
    {
        using (AesCryptoServiceProvider aes = new AesCryptoServiceProvider())
        {
            byte[] inputBytes = Encoding.UTF8.GetBytes(plainText);
            using (MemoryStream memoryStream = new MemoryStream())
            {
                using (CryptoStream cryptoStream = new CryptoStream(memoryStream, aes.CreateEncryptor(key, iv), CryptoStreamMode.Write))
                {
                    cryptoStream.Write(inputBytes, 0, inputBytes.Length);
                    cryptoStream.FlushFinalBlock();
                    return Convert.ToBase64String(memoryStream.ToArray());
                }
            }
        }
    }

    // 使用AES算法解密字符串
    public static string DecryptAES(string encryptedText)
    {
        using (AesCryptoServiceProvider aes = new AesCryptoServiceProvider())
        {
            byte[] inputBytes = Convert.FromBase64String(encryptedText);
            using (MemoryStream memoryStream = new MemoryStream())
            {
                using (CryptoStream cryptoStream = new CryptoStream(memoryStream, aes.CreateDecryptor(key, iv), CryptoStreamMode.Write))
                {
                    cryptoStream.Write(inputBytes, 0, inputBytes.Length);
                    cryptoStream.FlushFinalBlock();
                    return Encoding.UTF8.GetString(memoryStream.ToArray());
                }
            }
        }
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        string plainText = "Hello, World!";
        
        // 使用DES算法加密字符串
        string encryptedTextDES = EncryptionHelper.EncryptDES(plainText);
        Console.WriteLine("Encrypted (DES): " + encryptedTextDES);
        
        // 使用DES算法解密字符串
        string decryptedTextDES = EncryptionHelper.DecryptDES(encryptedTextDES);
        Console.WriteLine("Decrypted (DES): " + decryptedTextDES);
        
        // 使用AES算法加密字符串
        string encryptedTextAES = EncryptionHelper.EncryptAES(plainText);
        Console.WriteLine("Encrypted (AES): " + encryptedTextAES);
        
        // 使用AES算法解密字符串
        string decryptedTextAES = EncryptionHelper.DecryptAES(encryptedTextAES);
        Console.WriteLine("Decrypted (AES): " + decryptedTextAES);
    }
}

在上述示例代码中,我们使用了DES和AES对称加密算法对字符串进行加密和解密。key和iv分别代表密钥和初始化向量,可以根据实际需求进行修改。

请注意,C# .NET 3.5已经较为古老,推荐升级到最新的.NET版本以获得更好的性能和安全性。此外,还应该注意密钥和加密算法的选择,以确保安全性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券