另类文件加密三法.doc
文本预览下载声明
另类文件加密三法
发布: 2009-10-22 17:08 | 作者: 明月苍狼 | 来源: 中国电脑网-社区门户
经常有这样的情况,某些文件中存放了一些私人信息,或某些文件夹中存放了一些重要文件,我们希望能够禁止别人查看,或者想将这些文件或文件夹隐藏起来,让别人不知道它的存在。关于加密、隐藏文件和文件夹的方法很多,你也可以使用专门的程序来隐藏和加密文件和文件夹。但下这三种方法不知你是否用过?哪怕你并不想隐藏什么,它也一定能带给你一种新奇的感觉。用Copy命令来隐藏文本文件假如你有一篇文档不想让别人看见,请你先将它保存为文本文件(这个文本文件的前面要插入几个空行以免丢失内容),如A.txt,另找一个非文本文件,最好为图片文件或可执行文件,以图片文件为例。假设它的文件名为B.jpg,并把它们都放到D盘根目录下,那么在Windows的MS-DOS方式下执行以下命令:? ? D:\Copy??B.jpg/b??+??A.txt/a??C.jpg? ? 其中参数/b指定以二进制格式复制、合并文件;参数/a指定以ASCII格式复制、合并文件。这里要注意文件的顺序,二进制格式的文件应放在加号前,文本格式的文件放在加号后。执行该命令后,生成了一个新文件C.jpg,回到Windows中用图片浏览软件打开这个它,你会发现它与B.jpg的显示结果一模一样,我的文本文件哪里去了呢?别急,请你先单击C.jpg,然后按住Shift键,右单击C.jpg,单击“打开方式”,选择用记事本打开C.jpg,这时你会看到一堆乱码(不然怎么会隐藏文件呢?),按一下Ctrl+End键将光标移至文件的尾部,看是什么?原来我的文本文件乖乖的藏在这儿。编程来加密所有文件? ? 如果你是一个C语言爱好者,我们还可以用下面的方法来开发我们自己的文件加密法。在Turbo C2.0 下编写名为jiami.c的如下程序:#include??stdio.hmain( int argc,char *argv[ ]){??FILE *fp1,*fp2;? ?register char c;? ?register int j=0,j0=0;? ?if(argc!=4)? ?{ printf(jiami keyword in-fname out-fname); exit();}? ?fp1=fopen(argv[2],rb);? ?fp2=fopen(argv[3],wb);? ?while(argv[1][++j0]);? ?c=fgetc(fp1);? ?while(!feof(fp1))? ?{ fputc(c^argv[1][j=j0?j=0:j++],fp2);? ?c=fgetc(fp1);}? ?fclose(fp1);fclose(fp2);? ?}然后将其编译成可执行文件jiami.exe,这就是我们的加密程序。假如你要对A.doc文件进行加密。那么只需在Dos提示符下输入如下命令:jiami??369258147? ?A.doc??a.jmc后(369258147 是我们任意设的密匙),就会生成加密文件A.jmc。现在就可以将原文件A.doc 删除。当需要使用文件时,可以用以下命令还原:jiami??369258147??A.jmc??A.doc这种加密法的原理是:将需要加密的文件的数据逐字节读出并与我们设定的密匙(不能含有空格)进行异或运算,结果逐字节存入生成的加密文件;当需要使用原文件时,同样将加密文件逐字节与原设定的密匙进行异或运算,就可以得到原文件。这种方法可加密任何类型的文件。修改注册表来加密文件夹注册表是Windows系统的核心,个性化电脑、电脑软硬件的配置、电脑安全等方面的设置都可以通过它的修改来实现,当然我们也可以用它来加密文件夹。这种方法就是,使用某种文件类型的CLSID作为文件夹的扩展名。所谓CLSID是一个128比特长度的数字,用于唯一标识Windows中的某类资源,其显示形式通常为{0003000D-0000-0000-C000-000000000046}。在注册表的HKEY-CLASSES-ROOT\CLSID注册表项下,存放了Windows中所有的CLSID。我们从CLSID中选择一个CLSID。例如我们选择0000-0000-C000-000000000046},该CLSID在CLSID注册表项下,对应着视频剪辑类型的文件。假设我们要加密的文件夹是“D:\TMP\我的文件”这个文件夹。下面我们就要为其加密。右单击该文件夹,选“重命名”。将“我的文件”修改为“我的文件.0000-0000-C000-000000000046}”。注
显示全部