C#通过一个密码对文件进行加密解密操作

/ /要确保加密。解密文件的路径都存在的情况下运行。。。
使用系统;
使用System.Collections.Generic;
使用System.Linq的;
使用System.Text命名;
使用的System.Security.Cryptography;
使用System.IO;

命名空间EncryptDemo
{
    类节目
    {
        静态无效的main(String []参数)
        {
            Console.WriteLine(“请输入需要加密的文件目录:”);
            串inFileName = Console.ReadLine();
            Console.WriteLine(“加密后文件存放路径:”);
            串outFileName = Console.ReadLine();
            Console.WriteLine(“请输入密码:”);
            串密码= Console.ReadLine();

            / /创建密码钥匙
            字节[] saltValueBytes = Encoding.ASCII.GetBytes(“这是我的sa1t”);
            Rfc2898DeriveBytes passwordKey =(密码,saltValueBytes)新Rfc2898DeriveBytes;
            
            / /创建指定的算法和密钥和IV
            RijndaelManaged海藻酸钠=新RijndaelManaged();
            alg.Key = passwordKey.GetBytes(alg.KeySize / 8);
            alg.IV = passwordKey.GetBytes(alg.BlockSize / 8);
            / /读入fileData未加密文件
            新的FileStream的FileStream的infile =(inFileName,FileMode.Open,FileAccess.Read);
            字节[] fileData =新的字节[inFile.Length];
            inFile.Read(fileData,0,(int)的inFile.Length);
         
            / /创建ICryptoTransform和CryptoStream对象
            ICryptoTransform加密器= alg.CreateEncryptor();
            =新的FileStream outfile中的FileStream(outFileName,FileMode.OpenOrCreate,FileAccess.Write);
            CryptoStream的encryptStream =新CryptoStream的(输出文件,加密器,CryptoStreamMode.Write);
            / /写的内容到CryptoStream的
            encryptStream.Write(fileData,0,fileData.Length);
            encryptStream.Close();
            inFile.Close();
            outFile.Close();

            Console.WriteLine(“请输入需要解密的文件目录:”);
            串inFileName1 = Console.ReadLine();
            Console.WriteLine(“解密后文件存放路径:”);
            串outFileName1 = Console.ReadLine();
            Console.WriteLine(“请输入密码:”);
            串密码1 = Console.ReadLine();

            ICryptoTransform解密= alg.CreateDecryptor();
            FileStream的inFile1 =新的FileStream(inFileName1,FileMode.Open,FileAccess.Read);
            CryptoStream的decryptStream =新CryptoStream的(inFile1,解密,CryptoStreamMode.Read);
            ] fileData1 =新的字节[inFile1.Length]字节[;
            decryptStream.Read(fileData1,0,(int)的inFile1.Length);
            / /写文件的内容加密
            FileStream的outFile1 =新的FileStream(outFileName1,FileMode.OpenOrCreate,FileAccess.Write);
            outFile1.Write(fileData1,0,fileData1.Length);

            / /关闭文件句柄
            decryptStream.Close();
            inFile1.Close();
            outFile1.Close();

            Console.Read();
        }
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值