C#编程实现加密解密文件夹核心代码

 程序的基本原理是:用C#语言重命名文件夹,通过重命名使之成为windows安全文件的类标识符。具体的方法是为文件夹添加拓展名“.{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}”

(.{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}是windows安全文件的类标识符),这时文件夹的图标就会变成一把锁,这样文件夹就被加锁了。

  程序的主界面非常简洁,截图如下:

程序中加密解密文件夹的核心代码如下

        private void btnBrowseFolder_Click(object sender, EventArgs e)
        {
           
            status = lockType;//
            

            if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
            {
                DirectoryInfo d = new DirectoryInfo(folderBrowserDialog1.SelectedPath);
                string selectedpath = d.Parent.FullName + d.Name;
                if (folderBrowserDialog1.SelectedPath.LastIndexOf(".{") == -1)//通过文件夹名称,判断加密
                {                    
                    SetPwd(folderBrowserDialog1.SelectedPath);
                    if (!d.Root.Equals(d.Parent.FullName))
                    {                       
                            d.MoveTo(d.Parent.FullName + "\\" + d.Name + status);//文件夹重命名
                    }
                    else d.MoveTo(d.Parent.FullName + d.Name + status);
                    txtFolderPath.Text = folderBrowserDialog1.SelectedPath;
                    
                }
                else//解密文件夹
                {
                    status = GetStatus(status);
                    bool s = CheckPwd();
                    if (s)
                    {
                        File.Delete(folderBrowserDialog1.SelectedPath + "\\key.xml");
                        string path = folderBrowserDialog1.SelectedPath.Substring(0, folderBrowserDialog1.SelectedPath.LastIndexOf("."));
                        d.MoveTo(path);
                        txtFolderPath.Text = path;
                       
                    }
                }
            }
        }

程序的运行效果如下

以加密D盘下面的test文件夹为例,结果如下:

首先通过folderBrowserDialog选择相应的文件夹

输入密码,加锁

效果如下:

此时双击文件夹已经无法打开。

选择加密后的test文件夹,输入加密时输入的密码,可解锁。

test文件夹已经解密

结束语:本文件夹加密程序是通过重命名文件夹的方式实现的,加密强度较弱,牛人绕道,写出来给大家多个谈资~

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用C#进行DES加密和解密的代码示例: ```csharp using System; using System.Security.Cryptography; using System.Text; public class DESExample { public static string Encrypt(string plainText, byte[] key, byte[] iv) { byte[] encrypted; using (DESCryptoServiceProvider des = new DESCryptoServiceProvider()) { des.Key = key; des.IV = iv; ICryptoTransform encryptor = des.CreateEncryptor(des.Key, des.IV); using (var memoryStream = new System.IO.MemoryStream()) { using (var cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write)) { using (var streamWriter = new System.IO.StreamWriter(cryptoStream)) { streamWriter.Write(plainText); } encrypted = memoryStream.ToArray(); } } } return Convert.ToBase64String(encrypted); } public static string Decrypt(string cipherText, byte[] key, byte[] iv) { byte[] decrypted; using (DESCryptoServiceProvider des = new DESCryptoServiceProvider()) { des.Key = key; des.IV = iv; ICryptoTransform decryptor = des.CreateDecryptor(des.Key, des.IV); using (var memoryStream = new System.IO.MemoryStream(Convert.FromBase64String(cipherText))) { using (var cryptoStream = new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read)) { using (var streamReader = new System.IO.StreamReader(cryptoStream)) { decrypted = Encoding.UTF8.GetBytes(streamReader.ReadToEnd()); } } } } return Encoding.UTF8.GetString(decrypted); } } ``` 使用示例: ```csharp byte[] key = Encoding.UTF8.GetBytes("01234567"); byte[] iv = Encoding.UTF8.GetBytes("abcdefgh"); string plainText = "Hello, World!"; string encryptedText = DESExample.Encrypt(plainText, key, iv); Console.WriteLine($"Encrypted: {encryptedText}"); string decryptedText = DESExample.Decrypt(encryptedText, key, iv); Console.WriteLine($"Decrypted: {decryptedText}"); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值