当前位置:文档之家› 一个简单的自解密文件加密软件的制作

一个简单的自解密文件加密软件的制作

龙源期刊网 https://www.doczj.com/doc/8d14039109.html,

一个简单的自解密文件加密软件的制作

作者:童小明袁芳

来源:《硅谷》2015年第03期

摘要网上的文件加密程序很多,像最著名的winrar,winzip等。它们的实现算法相当复杂。同时还有一些简单的加密程序,有的操作虽然简单,却需要配套解密程序;或者是操作繁琐。

关键词解密;加密;算法;Huffman;自解密;线程

中图分类号:TP309.7 文献标识码:A 文章编号:1671-7597(2015)03-0112-02

1 问题提出

网上的文件加密程序很多,像最著名的winrar,winzip,它们的算法相当复杂。还有一些简单的加密程序,操作虽然简单,却需要配套解密程序;或者是操作繁琐。本人用过许多,效果都不太好。于是本人决定自己开发一个简单的自解密文件加密软件。

2 创作思路

本人觉得Huffman编码是最简单的一种算法,采用它实现自解密的加密文件软件的算法。双击运行程序,输入密码,选择一个文件,会自动生成自解密程序。以后任意运行自解密程序,输入前面加密时输入的密码,则解密出原始文件。

整个软件只有一个程序“可执行文件加密器.exe”,它的自定义资源为一个可执行文件解密器.exe的文件内容。其它3个是VC2013动态链接库。

程序先读入打开文件对话框中选择的文件内容,输入密码,根据文件中的256个字符(0-255)出现的次数,作为各个字符的权值,构造Huffman树和各个字符的Huffman编码。将每个字符换成它对应的Huffman编码,并转换成字节(1个或2个),将加密文件内容先存入输出缓冲区中。

然后依次写入可执行文件解密器.exe(由自定义资源中读取)、无路径的打开文件名、输入的密码(已经由公用SHA1算法加密)、Huffman结构、Huffman加密文件内容、标志,最后是文件名长度+文件名偏移+密码长度+密码偏移+Huffman结构长度+Huffman结构偏移

+Huffman加密文件内容长度+Huffman加密文件内容偏移。其中最后这8个整数都是加密的,Huffman加密文件内容也是加密的。

程序通过线程调用来实现大数据量的文件写入,通过不停的等待全局变量g_Finished的值为真,来结束程序运行,弹出成功生成加密文件对话框。

相关主题
文本预览
相关文档 最新文档