使用Windows EFS(怎么给文件夹加密)进行文件加密
和Windows BitLocker一样,Encrypting File System(EFS,加密文件系统)是Windows内置的一套基于公共密钥的加密机制,可以加密NTFS分区上的文件和文件夹,能够实时、透明地对磁盘上的数据进行加密。
加密操作
加密方法用户是透明的,文件加密之后,不必手动解密,使用者能自动打开加密文件,而其他用户则无法打开加密文件。
加密的方法很简单,在任何一个NTFS分区的目录或文件下,右击要加密的文件或文件夹;然后单击“属性”,在“常规”选项卡上,单击“高级”按钮;在弹出的窗口中,勾选“加密内容以便保护数据”复选框;点击“确定”即可,在关闭文件时文件即被加密。
在默认情况下,被EFS加密的文件或文件夹在资源管理器中会显示为绿色,这表示该文件或文件夹已经被EFS加密了。
如果不再希望对某个文件实施加密,清除该文件的属性中的复选框即可。
备份密钥
ESF加密操作虽然简单,但是如果用户重装了系统,以后即使利用原来的用户名和密码,也无法打开EFS加密文件(夹),因此用户应该及时备份密钥,这样以后即使重装系统,也能打开加密文件。
在进行加密操作后,Windows系统状态栏会自动提示用户进行备份加密密钥,点击后会出现“备份文件加密证书和密钥”的对话框,选择“现在备份”,会出现证书导出向导。
点下一步导出文件格式选项里,选择默认的“个人信息交换”。
再点下一步输入密码,这个密码是恢复证书要使用的密码,然后点下一步,选择保存地址,然后即可将证书文件成功导出。
如果用户没有点状态栏的图片即时进行备份密钥,也没有关系,还可以通过手动备份的方式进行密钥备份,方法是:点击菜单“开始”-“运行”,键入certmgr.msc打开证书管理器,点击“个人”-“证书”,只要以前做过加密操作,右边窗口就会有用户名同名的证书,假如有多份证书,选择“预期目的”为“加密文件系统”的;右击“证书”,在菜单中选择“所有任务”-“导出”。
之后会弹出一个“证书导出向导”窗口,在窗口中选取“导出私钥”,并按照向导的要求,输入密码保护导出的私钥,选择保存证书的目录,最后就完成了证书文件的导出工作。
加密的优点
EFS加密基于公钥加密策略,使用了一种快速的对称加密算法用一个随机生成的文件加密密钥(file encryption key,FEK)对文件或文件夹进行加密,加密不同的文件或文件夹时使用的密钥也不相同。
EFS加密的用户验证过程是在登录Windows时进行的,只要登录到Windows,就可以打开任何一个被授权的加密文件。所以这就是为什么EFS加密后的文件夹或文件,用户几乎无法感觉到加密效果的原因。
从操作的便利性来说,由于EFS的密码和用户登录Windows密码集成在一起,因此无需输入密码即可解密文件,操作甚为方便。
加密的缺点
不过,相比Bitlocker来说,EFS加密拥有几个重大的缺点。
首先,如果在重装系统前没有备份加密证书,重装系统后EFS加密的文件夹里面的文件将无法打开,即使用户使用原先的密码登录,也不能解密文件。
其次,对于多用户操作同一台电脑的情况,另一个用户虽然无法看到加密的文件内容,但是依旧可以看到加密的文件夹名称和文件名称,从而获得一些信息,此外,如果加密时候使用默认权限,其他用户还可以对EFS加密的文件和文件夹进行删除操作,因此,用户在使用EFS加密的时候,需要在“属性”-“安全”选项里设置一下文件或文件夹的访问权限,以防止他人查看或删除。
对于多用户使用同一台电脑还有一个有意思的情况,如果多用户都有管理员权限,那么修改另一个用户的密码,并用这个用户的身份登录系统后,并不能访问被EFS加密后的文件,因为用户密码被他人修改,但如果是用户自己对密码进行修改(需要输入旧密码的方式修改),那么用户依然可以打开被EFS加密的文件。
对于未设置访问权限的EFS加密文件是进行解密的前提条件是:知道用户帐户的登录密码,该被删帐户的配置文件必须存在,因为加密后的私钥和主密钥(还包括证书和公钥),都保存在配置文件里,如果以上两个条件满足,那么先从旧的配置文件里面获得被删帐户的SID(在配置文件目录\Application Data\Microsoft\Crypto\RSA 下有一个以该帐户的SID为名的文件夹,然后新建一个用户,用newsid工具把SID改的和原来一样,然后用新用户登录,随便加密一个文件,再注销,把旧的配置文件覆盖新用户的配置文件,再用新用户登录进去就可以解密其它文件了。
Bitlocker和EFS的对比
Bitlocker主要用于加密整个驱动器、外部硬盘、U盘等,EFS主要用于加密单个文件或文件夹。
Bitlocker不依赖用户账户,对于所有用户都是同样的状态(打开或关闭),EFS的加密依赖用户账户,如果电脑有多个用户,每个用户都可以独立加密自己的文件。
Bitlocker必须是管理员用户才能使用,EFS不需要管理员权限即可使用。
使用Windows EFS(怎么给文件夹加密)进行文件加密的更多相关文章
- 重新想象 Windows 8 Store Apps (25) - 选取器: 文件选取窗口, 文件夹选取窗口, 文件保存窗口
原文:重新想象 Windows 8 Store Apps (25) - 选取器: 文件选取窗口, 文件夹选取窗口, 文件保存窗口 [源码下载] 重新想象 Windows 8 Store Apps (2 ...
- Windows中通过命令行新建文件夹、新建文件,和一些常用命令
新建文件 和Linux不太一样,Linux中的touch和vi命令创建新文件的方法都不能用了,在windows命令行下得用type nul>文件名.后缀名来创建: F:\study\vue\wo ...
- 背水一战 Windows 10 (85) - 文件系统: 获取文件夹和文件, 分组文件夹, 排序过滤文件夹和文件, 搜索文件
[源码下载] 背水一战 Windows 10 (85) - 文件系统: 获取文件夹和文件, 分组文件夹, 排序过滤文件夹和文件, 搜索文件 作者:webabcd 介绍背水一战 Windows 10 之 ...
- Windows如何自定义U盘盘符、文件夹图标、文件夹背景
自定义U盘盘符.文件夹图标.文件夹背景 注意对于Vista和Win7的用户不支持文件夹图标和文件夹背景的更换 1.自定义盘符:在U盘根目录下新建文件 autorun.inf(可先建.txt文本文档,再 ...
- C#遍历文件夹下所有文件
FolderForm.cs的代码如下: using System; using System.Collections.Generic; using System.Diagnostics; using ...
- 使用C#选择文件夹、打开文件夹、选择文件
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- tcl/tk实例详解——返回一个文件夹下所有文件的绝对路径
http://blog.csdn.net/dulixin/article/details/2133840 #所有代码如下,使用注释的方式讲解脚本#修改好文件夹和保存结果路径,可以把本文件直接拷贝进tc ...
- PHP查看本地文件夹及删除文件夹操作
查看文件夹(包括文件夹内所有的文件夹和文件) function descdir($dir){ if(is_dir($dir)){ if($dh=opendir($dir)){ while(($file ...
- python 实现统计ftp服务器指定目录下文件夹数目、文件数目及所有文件大小
本次主要为满足应用方核对上传到ftp服务器的文件是否缺漏. 主要要求:指定目录下,文件夹数目/文件数目/所有文件大小,类似Windows如下功能: 模块介绍: from ftplib import F ...
- FILE文件删除操作(删除指定文件夹下所有文件和文件夹包括子文件夹下所有文件和文件夹),就是删除所有
2018-11-05 19:42:08开始写 选择 删除 1.FileUtils.java类 import java.io.File;//导入包 import java.util.List;//导入 ...
随机推荐
- (转)名称和本质 by王珢
名称和本质 by 王垠 我很喜欢 Richard Feynman 写的 <What Do You Care What Other People Think>.在最开头 Feynman 讲到 ...
- 优化curl并发使用
经典curl并发的处理流程:首先将所有的URL压入并发队列, 然后执行并发过程, 等待所有请求接收完之后进行数据的解析等后续处理. 在实际的处理过程中, 受网络传输的影响, 部分URL的内容会优先于其 ...
- css屏蔽元素的鼠标事件pointer-events
// 屏蔽点击 $('body').css('pointer-events', 'none'); //恢复默认 $('body').css('pointer-events', 'auto'); 用 ...
- 正确获取访问者ip
使用$_SERVER['REMOTE_ADDR']获取访问者ip具有局限性.比如访问者系统位于docker环境时,$_SERVER['REMOTE_ADDR']获取到的ip为虚拟ip,而不是我们真正需 ...
- Xcode下搭建OpenGL开发环境
#include <GLUT/GLUT.h> void display() { glClear(GL_ENABLE_BIT); glBegin(GL_POLYGON); glVertex2 ...
- laravel 生成验证码的方法
在Laravel中有很多图片验证码的库可以使用,本篇介绍其中之一:gregwar/captcha,这个库比较简单,在Laravel中比较常用.下面我们就来介绍下使用细节: 首先, composer.j ...
- 基于Redis的开源分布式服务Codis
Redis在豌豆荚的使用历程--单实例==>多实例,业务代码中做sharding==>单个Twemproxy==>多个Twemproxy==>Codis,豌豆荚自己开发的分布式 ...
- Vivado SDK 2014.2 创建新工程后,BSP版本不对的解决办法
问题描述如下: 1. 使用Vivado SDK 2014.2已经创建了工程,但是此时,hdf文件增加了外设,需要重新创建工程以更新SDK中的外设描述: 2. 使用新的hdf创建工程后,发现system ...
- Azure PowerShell (1) PowerShell入门
<Windows Azure Platform 系列文章目录> Update: 2016-01-11 笔者文档主要都是用Azure PowerShell 0.x版本来实现的,比如0.98版 ...
- 控制Linux下 mono 服务的启动停止
当Window下的服务部署到Linux的时候,我们一般用Mono.service 来启动停止.参数比较多,不太好用.于是有个这个Shell脚本. 用法:moa s1 start #启动 ...