• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

File Encryption Utility(使用Blowfish算法给文件加密的完整程序)

发布: 2007-7-01 20:40 | 作者: admin | 来源: | 查看: 22次 | 进入软件测试论坛讨论

领测软件测试网



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


翻译作者说明如下:

介绍

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

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%的确定这点。


延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网