翼度科技»论坛 编程开发 .net 查看内容

第35篇 实现C#编程文件夹加锁保护

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
要想保护自己的文件夹内的信息不被别人看到,可以给文件加个锁【注意:加锁用的密码一定要记住】

用C#语言实现一个文件夹锁的程序,程序的基本原理是:用C#语言重命名文件夹,通过重命名使之成为windows安全文件的类标识符。具体的方法是为文件夹添加拓展名“.{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}”
(.{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}是windows安全文件的类标识符),这时文件夹的图标就会变成一把锁,这样文件夹就被加锁了。
以下是使用流程
1.启动程序



2.选择要加锁的文件夹,并输出加锁密码【注意,密码一定要记住】



出现如图效果,文件夹加锁成功

加锁成功后,会出现这个图标,不解锁的情况下是无法访问这个文件夹里的内容的

3.解锁

再次选择文件夹,输入解锁密码【加锁时用的密码】


解锁完成后文件夹里的内容就可以正常访问了


4.核心代码如下

点击查看代码
  1.         private void button1_Click(object sender, EventArgs e)
  2.                         {
  3.                                 status = arr[0];         
  4.                                 if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
  5.                                 {               
  6.                                         DirectoryInfo d = new DirectoryInfo(folderBrowserDialog1.SelectedPath);
  7.                                         string selectedpath = d.Parent.FullName + d.Name;
  8.                                         if (folderBrowserDialog1.SelectedPath.LastIndexOf(".{") == -1) //通过文件夹名称,判断是加密还是解密
  9.                                         {
  10.                                                 if (checkBox1.Checked)
  11.                                                         setpassword(folderBrowserDialog1.SelectedPath);
  12.                                                 if (!d.Root.Equals(d.Parent.FullName))
  13.                                                 {
  14.                                                         d.MoveTo(d.Parent.FullName + "\" + d.Name + status); //文件夹重命名
  15.                                                 }
  16.                                                 else
  17.                                                 {
  18.                                                         d.MoveTo(d.Parent.FullName + d.Name + status);
  19.                                                 }
  20.                                                 textBox1.Text = folderBrowserDialog1.SelectedPath;
  21.                                                 pictureBox1.Image = Image.FromFile(Application.StartupPath + "\\Images\\lock.jpg");
  22.                                                 this.notifyMessage.Text = "加锁成功";
  23.                                                 this.notifyMessage.ForeColor = Color.Red;
  24.                                         }
  25.                                         else
  26.                                         {
  27.                                                 //解密文件夹
  28.                                                 status = getstatus(status);
  29.                                                 bool s=checkpassword();
  30.                                                 if (s)
  31.                                                 {
  32.                                                         File.Delete(folderBrowserDialog1.SelectedPath + "\\p.xml");
  33.                                                         d.MoveTo(folderBrowserDialog1.SelectedPath.Substring(0, folderBrowserDialog1.SelectedPath.LastIndexOf(".")));
  34.                                                         textBox1.Text = folderBrowserDialog1.SelectedPath.Substring(0, folderBrowserDialog1.SelectedPath.LastIndexOf("."));
  35.                                                         pictureBox1.Image = Image.FromFile(Application.StartupPath + "\\Images\\unlock.jpg");
  36.                                                         this.notifyMessage.Text = "解锁成功";
  37.                                                         this.notifyMessage.ForeColor = Color.Green;
  38.                                                 }
  39.                                         }
  40.                                 }
  41.                         }
复制代码
5.我的demo程序的代码地址,有需要可以看看

代码库地址:https://gitee.com/chenshibao/folder-protection-tool.git
结束语:本文件夹加密程序是通过重命名文件夹的方式实现的,加密强度较弱,但可以满足一定的加密需要!

来源:https://www.cnblogs.com/chenshibao/p/18472132
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具