每个人电脑上都有一些小秘密不想让人知道,常规的方法是使用第三方加密软件进行保护。不过加密软件会占用系统资源,而且密码的记忆也让人很头疼。对于Windows 10用户,保护秘密文件可以借助系统自带的批处理保护文件。
首先启动记事本输入下列的代码,然后将其保存为lock.bat放置在桌面备用(图1):
cls
@ECHO OFF
title Folder Private
if EXIST \"网络.{208D2C60-3AEA-1069-A2D7-08002B30309D}\" goto UNLOCK
if NOT EXIST Private goto MDLOCKER
:CONFIRM
echo 是要锁定加密文件夹?(Y/N)
set/p \"cho=>\"
if %cho%==Y goto LOCK
if %cho%==y goto LOCK
if %cho%==n goto END
if %cho%==N goto END
echo Invalid choice.
goto CONFIRM
:LOCK
ren Private \"网络.{208D2C60-3AEA-1069-A2D7-08002B30309D}\"
attrib +h +s \"网络.{208D2C60-3AEA-1069-A2D7-08002B30309D}\"
echo 文件夹已被锁定
goto End
:UNLOCK
echo 请输入密码解锁文件夹
set/p \"pass=>\"
if NOT %pass%== cfan goto FAIL
attrib -h -s \"网络.{208D2C60-3AEA-1069-A2D7-08002B30309D}\"
ren \"网络.{208D2C60-3AEA-1069-A2D7-08002B30309D}\" Private
explorer Private
echo 文件夹已经成功解锁
goto End
:FAIL
echo 错误密码
goto end
:MDLOCKER
md Private
echo 已经创建加密文件夹
goto End
:End
代码解读:
上述批处理加密文件是借助创建类标识符,并且为其设置系统,隐藏属性实现。首先在当前目录下创建一个名为“Private”的目录,设置密码(通过if NOT %pass%== cfan语句创建,默认为“cfan”),然后使用rem命令将其重命名为“网络.{208D2C60-3AEA-1069-A2D7-08002B30309D}”(类标识符,可以展开位于注册表的[HKEY_LOCAL_MACHINE\Software\Classes\CLSID],任意选择自己需要的标识电脑符)。这样再次输入密码后,代码会使用rem命令恢复“网络.{208D2C60-3AEA-1069-A2D7-08002B30309D}”为“Private”,同时解除其系统、隐藏属性方便我们访问。
这样当我们需要隐藏文件时,只要将上述批处理复制到需要隐藏文件的目录下。以管理员身份运行上述批处理,运行后会自动在当前目录下创建“Private”文件夹(图2)。
图2 创建加密目录
按提示将需要加密的文件全部移动到上述加密目录中,完成文件的移动后继续运行上述批处理,在系统提示是否加密该目录时,按提示输入“Y”确认(图3)。
图3 确认加密文件夹
按提示输入Y确认后,此时批处理会自动将“Private”文件夹重命名为“网络”(文件夹自动变为系统文件夹网络),同时被自动添加上系统、隐藏属性(图4)。
图4 加密文件夹被重命名为“网络”
因为上述创建的文件夹变为系统文件夹,并且被自动添加系统、隐藏属性。因此默认情况下用户无法看到该目录(需要在文件夹查看方式设置为“显示隐藏文件、文件夹和驱动器”,并且去除“隐藏受保护的操作系统文件”勾选)。这样用户才能看到这个加密的文件夹(图5)。
图5 查看方式设置
当然因为加密文件被重命名为系统文件夹(网络),因此即使用户可以查看到上述加密目录,用户双击打开后也看不到其中的文件,打开的是系统的网络目录(图6)。
图6 用户打开无法看到加密文件
如果自己需要访问加密目录,同上再次运行批处理,在打开的窗口按提示输入访问密码“cfan”(图7)。
图7 输入访问密码
输入正确的密码后,系统会提示文件夹已解锁。同时批处理在后台会自动将网络系统文件夹重命名为“Private”,同时调用“explorer Private“,自动打开加密文件夹,在打开的窗口访问加密文件夹即可(图8)。
图8 访问加密目录
如果需要再次加密文件夹,同上访问完目录后再次运行批处理即可重新加密隐藏。当然因为这里加密使用的是类标识符的方式,因此如果忘记密码需要访问加密目录,我们可以使用命令行自行解密,启动命令提示符后按提示输入下列的命令解密即可(图9):
rem 取消隐藏属性
attrib -h -s \"网络.{208D2C60-3AEA-1069-A2D7-08002B30309D}\"
rem 重命名为Private文件夹
ren \"网络.{208D2C60-3AEA-1069-A2D7-08002B30309D}\" Private
图9 手动解密文件夹