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

溫馨提示×

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
孟村| 衡东县| 四子王旗| 丹寨县| 佛冈县| 扎鲁特旗| 廊坊市| 聂拉木县| 遂宁市| 宣武区| 黄石市| 乐亭县| 白朗县| 汪清县| 河南省| 儋州市| 玛纳斯县| 永济市| 渭源县| 濮阳市| 介休市| 灵川县| 永善县| 丰镇市| 陇西县| 华坪县| 随州市| 洪雅县| 河池市| 新乡县| 方正县| 大田县| 梧州市| 卢湾区| 黑水县| 辽源市| 新泰市| 青海省| 苍梧县| 长春市| 龙川县|