中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

如何在c#中實現對稱加密的加解密測試

c#
小樊
106
2024-09-20 05:47:23
欄目: 編程語言

在C#中實現對稱加密的加解密測試,你可以使用.NET框架自帶的System.Security.Cryptography命名空間中的類。這里以AES加密為例,展示如何實現加解密測試。

  1. 首先,確保已經安裝了System.Security.Cryptography.dll,這個DLL在.NET Framework中已經包含,不需要額外安裝。

  2. 創建一個名為AesEncryptionHelper的類,并添加以下代碼:

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

public static class AesEncryptionHelper
{
    private static readonly byte[] Key = Encoding.UTF8.GetBytes("16位長度的密鑰");
    private static readonly byte[] IV = Encoding.UTF8.GetBytes("16位長度的初始向量");

    public static string Encrypt(string plainText)
    {
        using (Aes aesAlg = Aes.Create())
        {
            aesAlg.Key = Key;
            aesAlg.IV = IV;

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

            using (var msEncrypt = new System.IO.MemoryStream())
            {
                using (var csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
                {
                    using (var swEncrypt = new StreamWriter(csEncrypt))
                    {
                        swEncrypt.Write(plainText);
                    }
                }
                return Convert.ToBase64String(msEncrypt.ToArray());
            }
        }
    }

    public static string Decrypt(string cipherText)
    {
        using (Aes aesAlg = Aes.Create())
        {
            aesAlg.Key = Key;
            aesAlg.IV = IV;

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

            using (var msDecrypt = new System.IO.MemoryStream(Convert.FromBase64String(cipherText)))
            {
                using (var csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
                {
                    using (var srDecrypt = new StreamReader(csDecrypt))
                    {
                        return srDecrypt.ReadToEnd();
                    }
                }
            }
        }
    }
}
  1. 在Main方法中,使用AesEncryptionHelper類進行加密和解密測試:
using System;

class Program
{
    static void Main(string[] args)
    {
        string plainText = "這是一段需要加密的文本";
        string encryptedText = AesEncryptionHelper.Encrypt(plainText);
        string decryptedText = AesEncryptionHelper.Decrypt(encryptedText);

        Console.WriteLine("原文:" + plainText);
        Console.WriteLine("加密后的文本:" + encryptedText);
        Console.WriteLine("解密后的文本:" + decryptedText);
    }
}

運行上述代碼,你將看到加密和解密后的文本。請注意,為了簡化示例,這里使用了固定的密鑰和初始向量。在實際應用中,建議使用更安全的方式來生成和管理密鑰和初始向量。

0
阳信县| 贵溪市| 蒙城县| 始兴县| 潮州市| 阳山县| 中牟县| 新巴尔虎右旗| 清涧县| 荆州市| 新昌县| 泽州县| 道孚县| 明溪县| 子长县| 龙川县| 关岭| 谷城县| 交城县| 平阴县| 靖边县| 阿克| 张家港市| 常德市| 渝中区| 平泉县| 永安市| 巴彦淖尔市| 昭觉县| 金川县| 英山县| 钦州市| 安福县| 镇江市| 建德市| 黔南| 康保县| 普安县| 金湖县| 阳曲县| 大渡口区|