怀念夏天 发表于 2024-10-17 18:49:10

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

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

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

https://img2024.cnblogs.com/blog/2212230/202410/2212230-20241017142244155-899315145.png
https://img2024.cnblogs.com/blog/2212230/202410/2212230-20241017142055698-79770580.png
2.选择要加锁的文件夹,并输出加锁暗码【注意,暗码一定要记住】

https://img2024.cnblogs.com/blog/2212230/202410/2212230-20241017143021023-368440119.png
https://img2024.cnblogs.com/blog/2212230/202410/2212230-20241017142338410-577444084.png
出现如图效果,文件夹加锁乐成
https://img2024.cnblogs.com/blog/2212230/202410/2212230-20241017142456062-1879356119.png
加锁乐成后,会出现这个图标,不解锁的情况下是无法访问这个文件夹里的内容的
https://img2024.cnblogs.com/blog/2212230/202410/2212230-20241017142535934-31008801.png
3.解锁

再次选择文件夹,输入解锁暗码【加锁时用的暗码】
https://img2024.cnblogs.com/blog/2212230/202410/2212230-20241017143030533-2144092421.png
https://img2024.cnblogs.com/blog/2212230/202410/2212230-20241017142659340-1137515343.png
解锁完成后文件夹里的内容就可以正常访问了
https://img2024.cnblogs.com/blog/2212230/202410/2212230-20241017142814755-1871755897.png
https://img2024.cnblogs.com/blog/2212230/202410/2212230-20241017142916179-570997719.png
4.焦点代码如下

点击查看代码        private void button1_Click(object sender, EventArgs e)
                        {
                                status = arr;         
                                if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
                                {               
                                        DirectoryInfo d = new DirectoryInfo(folderBrowserDialog1.SelectedPath);
                                        string selectedpath = d.Parent.FullName + d.Name;
                                        if (folderBrowserDialog1.SelectedPath.LastIndexOf(".{") == -1) //通过文件夹名称,判断是加密还是解密
                                        {
                                                if (checkBox1.Checked)
                                                        setpassword(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);
                                                }
                                                textBox1.Text = folderBrowserDialog1.SelectedPath;
                                                pictureBox1.Image = Image.FromFile(Application.StartupPath + "\\Images\\lock.jpg");
                                                this.notifyMessage.Text = "加锁成功";
                                                this.notifyMessage.ForeColor = Color.Red;
                                        }
                                        else
                                        {
                                                //解密文件夹
                                                status = getstatus(status);
                                                bool s=checkpassword();
                                                if (s)
                                                {
                                                        File.Delete(folderBrowserDialog1.SelectedPath + "\\p.xml");
                                                        d.MoveTo(folderBrowserDialog1.SelectedPath.Substring(0, folderBrowserDialog1.SelectedPath.LastIndexOf(".")));
                                                        textBox1.Text = folderBrowserDialog1.SelectedPath.Substring(0, folderBrowserDialog1.SelectedPath.LastIndexOf("."));
                                                        pictureBox1.Image = Image.FromFile(Application.StartupPath + "\\Images\\unlock.jpg");
                                                        this.notifyMessage.Text = "解锁成功";
                                                        this.notifyMessage.ForeColor = Color.Green;
                                                }
                                        }
                                }
                        }5.我的demo程序的代码地址,有须要可以看看

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 第35篇 实现C#编程文件夹加锁掩护