91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c#文件操作如何實現文件加密

c#
小樊
81
2024-11-24 15:56:58
欄目: 編程語言

在C#中,可以使用多種方法對文件進行加密。這里,我將向您展示如何使用Aes類(高級加密標準)和FileStream類來實現文件加密和解密。

首先,確保已經安裝了System.Security.Cryptography命名空間。

以下是一個簡單的示例,展示了如何使用AES加密和解密文件:

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

class FileEncryption
{
    static void Main()
    {
        string inputFile = "input.txt";
        string outputFile = "output.enc";
        string key = "your-secret-key"; // 請確保密鑰長度為16、24或32個字符
        string iv = "your-initial-vector"; // 請確保初始向量長度為16個字符

        EncryptFile(inputFile, outputFile, key, iv);
        DecryptFile(outputFile, "output.txt", key, iv);
    }

    static void EncryptFile(string inputFile, string outputFile, string key, string iv)
    {
        using (Aes aes = Aes.Create())
        {
            aes.Key = Encoding.UTF8.GetBytes(key);
            aes.IV = Encoding.UTF8.GetBytes(iv);

            using (FileStream fs = new FileStream(inputFile, FileMode.Open))
            {
                using (FileStream fos = new FileStream(outputFile, FileMode.Create))
                {
                    using (CryptoStream cs = new CryptoStream(fos, aes.CreateEncryptor(), CryptoStreamMode.Write))
                    {
                        cs.Write(fs.ToArray(), 0, fs.Length);
                    }
                }
            }
        }
    }

    static void DecryptFile(string inputFile, string outputFile, string key, string iv)
    {
        using (Aes aes = Aes.Create())
        {
            aes.Key = Encoding.UTF8.GetBytes(key);
            aes.IV = Encoding.UTF8.GetBytes(iv);

            using (FileStream fs = new FileStream(inputFile, FileMode.Open))
            {
                using (FileStream fos = new FileStream(outputFile, FileMode.Create))
                {
                    using (CryptoStream cs = new CryptoStream(fs, aes.CreateDecryptor(), CryptoStreamMode.Write))
                    {
                        cs.Write(fs.ToArray(), 0, fs.Length);
                    }
                }
            }
        }
    }
}

在這個示例中,我們首先創建了一個名為FileEncryption的類。在Main方法中,我們指定了輸入文件、加密后的輸出文件、密鑰和初始向量。然后,我們調用EncryptFile方法對文件進行加密,接著調用DecryptFile方法對加密后的文件進行解密。

請注意,您需要將your-secret-keyyour-initial-vector替換為您自己的密鑰和初始向量。密鑰的長度應為16、24或32個字符,而初始向量的長度應為16個字符。在實際應用中,確保密鑰和初始向量的安全性非常重要。

0
绥阳县| 绥宁县| 嘉兴市| 泸州市| 晴隆县| 汕尾市| 连州市| 雅江县| 九龙坡区| 夏津县| 信丰县| 平乡县| 韩城市| 新宁县| 汾阳市| 弥渡县| 辽阳县| 庆云县| 泊头市| 奉化市| 甘肃省| 临安市| 内江市| 姚安县| 朝阳区| 体育| 同江市| 萝北县| 嘉荫县| 肇东市| 灯塔市| 沈阳市| 平山县| 吴忠市| 和田市| 壤塘县| 拜泉县| 浮山县| 昭通市| 辽宁省| 兰州市|