VC6.0 使用CImg类出现error C2039: 'FILE' : is not a member of 'std'

VC6.0 使用CImg类出现error C2039: 'FILE' : is not a member of 'std',第1张

VC6.0默认没有集成Cimage类

在vc6.0以上版本都有不同完整程度的集成Cimage类

VC6.0需要你自己手动添加Cimage类

你可以下载VC版本的Cimage类编译后手动添加进去或者下载别人编译好的手动添加进去

或者直接使用Cimage类源文件

具体 *** 作找百度

建议使用EFS加密,这种办法最安全!

从Windows 2000开始,微软新增了一种叫做EFS的加密方法。这是一种既方便又安全的加密方式,然而人们总是对它敬而远之,为什么呢?一方面,EFS加密方式不像其他加密软件那样容易理解。另一方面,由于EFS的高安全性,如果用户 *** 作不当则很可能导致数据丢失。为了帮助大家理解EFS,避免使用中的错误 *** 作,我们准备了这篇文章,希望你能真正地用好EFS。

提示:要使用EFS,必须满足两个条件:

1. 文件需要保存在NTFS文件系统的分区上。

2. *** 作系统必须支持EFS加密。目前支持EFS的 *** 作系统主要有:Windows 2000、Windows XP Professional、Windows 2003。

EFS加密的优势

既然EFS如此麻烦,为什么不使用更简单的加密方法呢?例如用WinRAR将文件压缩的时候设置密码,这样解压时就需要提供密码,不是很直观吗?其实不然。首先EFS使用密钥加密,不易被破解。虽然Winrar可以给压缩的文件设置密码,但是网上有很多破解工具都可以破解,而EFS自从1999年发布至今,没有听说有谁能够破解。其次,EFS和系统结合紧密,如果你用帐户A加密了数据,那么只有使用帐户A登录系统,才能打开文件。另外,EFS对用户是完全透明的,EFS加密后的文件对于加密者来说,和没有加密的文件是完全一样的,可以直接在资源管理器中打开查看、编辑、删除、复制和移动,所有 *** 作都和平时一样。

加密方法

下面我们就来说说如何将文件(夹)用EFS加密,最简单的办法就是在目标对象上点击鼠标右键,选择“属性”,打开属性对话框,然后在常规选项卡上点击“高级”按钮,打开高级属性对话框,选中“加密内容以便保护数据”这个选项(如图1)。

http://cimg2.163.com/tech/2006/4/12/200604121006287cd2a.jpg

这里有一点需要注意,我们可以对NTFS分区上的文件进行加密或者压缩,然而这两种属性不能同时应用到一个对象上。也就是说,一个文件被加密后就不能被压缩,被压缩后就不能被加密。想要知道文件有没有被加密或者压缩很简单,默认设置下,在Windows资源管理器中,正常文件会用黑色文字显示,而压缩后的文件会用蓝色文字显示,加密后的文件则会用绿色文字显示。

每次加密都需要打开其高级属性对话框,非常麻烦。我们可以打开注册表编辑器,依次展开如下项目:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced,在这里新建一个名为EncryptionContextMenu的DWORD值,并将其数值设置为“1”,这样用鼠标右键点击一个文件或文件夹的时候,右键菜单中就会有加密(如果目标对象尚未被加密)或者解密(如果目标对象已经被加密)选项,只要选择相应的选项就可以直接完成 *** 作(如图2)。

http://cimg2.163.com/tech/2006/4/12/20060412100644e98b9.jpg

如果有一个加密后的文件希望共享,可以首先在这个文件上点击鼠标右键,选择“属性”,打开属性对话框。接着点击常规选项卡上的“高级”按钮,打开高级属性对话框,并点击“详细信息”按钮,打开如图3所示的详细信息对话框。

http://cimg2.163.com/tech/2006/4/12/2006041210070175924.jpg

在这个对话框中点击“添加”按钮,就可以选择你希望可以打开这个文件的用户。不过要注意,这里添加用户并不是添加用户的名称,而是添加用户的公钥,也就是说希望共享文件的用户必须有自己的公钥。

密钥的备份和恢复

你肯定觉得EFS非常简单吧?为什么有很多人在使用EFS的时候出现问题呢?笔者认为最大的原因在于很多人并没有真正理解EFS的加密方式。说到加密,密钥是一个非常重要的概念。EFS是一种公钥加密,那么这里就要说说什么是公钥加密了。在使用EFS加密一个文件或文件夹时,系统首先会生成一个由伪随机数组成的FEK (File Encryption Key,文件加密钥匙),然后利用FEK和数据扩展标准X算法创建加密后的文件,并把它存储到硬盘上,同时删除未加密的原始文件。随后系统利用你的公钥加密FEK,并把加密后的FEK存储在同一个加密文件中。而在访问被加密的文件时,系统首先利用当前用户的私钥解密FEK,然后利用FEK解密出文件。在首次使用EFS时,如果用户还没有公钥/私钥对(统称为密钥),则会首先生成密钥,然后加密数据。

从这段话中我们可以看出两个重点:文件的加密和解密都需要密钥的参与,而密钥分为公钥和私钥两种。很明显,无论是加密还是解密文件,都需要用到个人密钥。加密文件的时候使用公钥,解密文件的时候则使用相对应的私钥。那么无论是丢失了公钥还是私钥,都会给我们的使用带来麻烦,尤其是私钥,丢失之后就再也无法解密文件了。

为了保证数据安全,我们最好能在加密文件之后立即将自己的密钥备份出来,并保存到安全的地方,以防系统崩溃或其他原因导致数据无法解密。如何备份密钥呢?运行“certmgr.msc”打开证书管理器,在“当前用户/个人/证书”路径下,应该可以看见一个以你的用户名为名称的证书(如果你还没有加密任何数据,这里是不会有证书的)。用鼠标右键点击这个证书,在“所有任务”中点击“导出”(如图4)。之后会d出一个证书导出向导,在向导中有一步会询问你是否导出私钥,在这里要选择“导出私钥”,其它选项按照默认设置,连续点击继续,最后输入该用户的密码和想要保存的路径并确认,导出工作就完成了。导出的证书将是一个pfx为后缀的文件。这个pfx文件最好能保存到其他位置,并且要保证该文件的安全。

http://cimg2.163.com/tech/2006/4/12/2006041210073855126.jpg

恢复密钥

当用户的密钥丢失后,例如重装了 *** 作系统,或者无意中删除了某个帐户,我们只要找到之前导出的pfx文件,用鼠标右键点击,并选择“安装PFX”,之后会出现一个导入向导,按照导入向导的提示完成 *** 作(注意,如果你之前在导出证书时选择了用密码保护证书,那么在这里导入这个证书时就需要提供正确的密码,否则将不能继续),而之前加密的数据也就全部可以正确打开。

讲到这里,相信你对EFS的基本使用方法已经有了一个大概的认识,不过光有理论知识是不够的,笔者希望大家都多在实践中掌握EFS的使用。 由于EFS安全性非常高,如果使用不慎或方法不当则可能造成非常麻烦的后果,所以建议大家先用不重要的文件进行EFS加密的试验。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11394723.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存