这个程序我试了一下,效果很好,但要记住是给文本或二进制文件加密的,如果给别的格式的文件加密,将无法解密到原来的文件。

翻译作者说明如下:

介绍

我在网上想找一个简单而且安全的文件加密的源代码,但是没有找到,所以自己写了一个。

File Encryption utility是一个简单的给文本或二进制文件加密的工具,使用blowfish压缩算法。

这个工具可以创建一个self extracted加密文件,如果你想深入了解怎样创建一个self extracted文件,请看我的另一篇文章Creating Self-Extracted Executable。

功能

1.快速的文件加密/解密功能

2.内部文件过滤功能

3.创建一个Self-Extracted加密文件

4.通过配置对话框综合控制

语言

File Encryption utility使用了C++/ATL窗口类,使用的ATL很少,因此对此库不熟悉的朋友也可以看懂代码。

概要

File Encryption Utility分为下面几个小的工程:

• FileEnc – The UI of the file encryption utility, also holding Processing class which is also used by SelfExtract and it’s responsible for reading/writing files.

• Enc_Blowfish – Blowfish encryption implementation (based upon Bruce Schneier & Jim Conger implementation).

• SelfExtract – Self Extracted executable “header”.

• GenLib – Small Library holding all commonly used in other project parts.

• Builder – Small Console utility for creating the final File Encryption Executable.

GenLib

为了使提供的各类有一个中心的切入点,我做了一个静态类GenLib

File Encryption Utility提供GenLib的Stripped版本。在这个版本里你可以看到下面这些有用的类:

•GenFiles – Openning OpenFile/SaveFile & OpenDirectory Dialog Boxes.

• SelfExtract – Creating Self-Extracted Executable.

• Thread – Implementation of a parent class for classes who want to execute code in separated thread (more information can be seen in the header – thread.h).

• FileWipe – Wiping a File from Hard Drive.

加密技术

在FileEnc工程中有一个接口叫做EncryptionInterface-使用这个接口可以简单的改变加密的应用。

Blowfish的实现是静态连接到应用中去的,这样是为了避免被改变的dll黑掉。

安全

为了使加密足够的安全,我做了在程序退出时擦除信息的功能。

当你看代码的时候,你会看到我使用了ZeroMemory API函数从内存中删除信息。

当加密一个文件时,你可以选择Wipe Source After Process复选框,功能是在加密时此文件不能被访问。

备注

解密时不验证密码,用一个错误的密码解密会得到一个错误的文件,这不是程序的一个bug,有许多解密程序都是这样的。

文件的加密决定于密码的长度,密码越长越安全。

尽管我自己认为文件擦除的方法是很安全的,但是我不能100%的确定这点。

blowfish算法c语言,使用Blowfish算法给文件加密相关推荐

  1. c语言考试算法,c语言考试常用算法docx.docx

    c语言考试常用算法docx 求1~100的累加和#includevoid main(){inti=1,sum=0;while (i<=100){sum+=i;i++;}printf(" ...

  2. c代码实现 ifft运算_fft算法c语言_matlab fft算法_ifft c语言

    FFT快速算法C程序_工学_高等教育_教育专区.电子信息工程综合课程设计报告书 DSP 课程设计 报告 题学 目: 院: FFT 快速算法 C 程序 计算机与信息工程学院 09 ... fft算法代码 ...

  3. 函数c语言桶排算法,C语言基本排序算法之桶式排序实例

    本文实例讲述了C语言基本排序算法之桶式排序.分享给大家供大家参考,具体如下: 桶式排序是对一个有n个整型元素的数组a[n],其中对任意i,0 <= a[i] <= m的特殊排序算法. 可以 ...

  4. 时钟页面置换算法c语言,clock置换算法例题(改进clock置换算法例题讲解)

    Clock页面置换算法: 6)动态给出页面调用序列并进行调度: 7)输出置换结. C++编程要? 考试用 哪位大侠 帮帮 快点 谢谢了 这很简单啊,要打字太多了.不过网上这类算法举例很少,就看你怎么理 ...

  5. c语言编程实现dsa算法,C语言实现DSA算法(不包括质数生成)

    1.头文件部分 #include #include #include 2.判断大数是不是0或1 参见<C语言实现RSA算法> 3.大数加减乘除幂模 参见<C语言实现RSA算法> ...

  6. 弗洛伊德算法c语言path,Floyd算法(弗洛伊德算法)

    算法描述: Floyd算法又称为弗洛伊德算法,插点法,是一种用于寻找给定的加权图中顶点间最短路径的算法.从图的带权邻接矩阵A=[a(i,j)] n×n开始,递归地进行n次更新,即由矩阵D(0)=A,按 ...

  7. 用c语言编写银行家算法,C语言实现银行家算法

    <C语言实现银行家算法>由会员分享,可在线阅读,更多相关<C语言实现银行家算法(8页珍藏版)>请在人人文库网上搜索. 1.C语言实现银行家算法(源码.运行结果)一. 源码/* ...

  8. 最佳值换算法c语言,页面置换算法---最佳置换算法(OPT)

    最佳置换算法(OPT) 什么是OPT 最佳置换算法,其所选择的被淘汰的页面将是以后永不使用的,或是在最长(未来)时间内不再被访问的页面.采用最佳置换算法通常可保证最低的缺页率.但是人们目前还无法与之, ...

  9. shuffle算法c语言,C#Shuffle算法(洗牌算法、抽样算法)

    Fisher-Yates Shuffle算法 1.创建一个新的list 2.随机取出当前0-list.Count其中一个数 3.把老list当前随机数位置添加到新list 4.老list删除这个数 5 ...

  10. 格雷码算法c语言实验报告,算法设计与分析实验报告

    本科生实验报告 课程名称:算法设计与分析 实验项目:递归和分治算法 实验地点:计算机系实验楼110 专业课:物联网1601学生.2016002105 学生姓名:于 指导员:郝晓丽 2018年5月4日 ...

最新文章

  1. lisp语言cond和if套用_在'if'语句中设置多行条件的样式?
  2. Android获取设备状态栏status bar高度的正确姿势
  3. 关于大型网站技术演进的思考(七)--存储的瓶颈(7)
  4. Python之路--WEB框架本质
  5. 使用Docker中国官方镜像的加速地址
  6. [BJDCTF2020]EzPHP 1
  7. lambda中的钩子函数
  8. 分布式缓存 - hash环/一致性hash
  9. 计算机应用基础教学反思与改进,中职《计算机应用基础》课程教学反思
  10. ios快速将显卡中数据读出压缩成视频--cocos2dx扩展
  11. darknet集成遇到的问题以及解决方法
  12. [AI教程]最全人工智能图谱解析和视频下载
  13. 地理建模——模型概述
  14. ubuntu16.04安装、编译LSD-SLAM遇到错误及解决
  15. android 简单的exoplayer全景播放器
  16. 治愈系书单|林曦《只生欢喜不生愁》
  17. Excel_文本转数值型
  18. 全面解读量化中性策略
  19. 一文集齐几大硬核Linux技术公众号,不是精品不推荐
  20. “一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组.

热门文章

  1. SourceSafe的命令行
  2. 【实战模拟】使用Kali Linux进行域名解析——模拟测试
  3. 中富之命能有多少钱_算命中富 算命的说我是中富命,谁可以帮忙解释下
  4. java 逃逸分析_JVM之逃逸分析
  5. 测试工程师面试宝典QA(非编程)
  6. phpStorm 配置关联php手册
  7. 第三门课 结构化机器学习项目(Structuring Machine Learning Projects)
  8. Unity Visual Effect Graph 制作Fireworks烟花特效
  9. item在C语言中是什么意思中文,单词item中文表达的是什么意思
  10. Oracle中dual表的用途介绍