Advertisement

利用Qt开发的开源小型项目,QuickEncrypt数据安全工具。

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
QuickEncrypt是一款便捷的数据安全工具,它采用直观的托盘图标、悬浮窗、鼠标拖拽和右键菜单操作模式,为用户提供文件和文本的加解密(采用RC4+AES算法)、Hash计算(MD5+SHA1算法)以及安全擦除等一系列功能。此外,该工具独具特色的“智能压缩”加密模式,能够有效提升数据安全性。 该工具具备以下核心功能:对鼠标拖入的文本内容进行加解密操作;对剪贴板中的文本内容进行加解密处理;对鼠标拖入的文件内容进行加解密操作;对鼠标拖入的文件内容执行安全擦除;对鼠标拖入的文本内容进行Hash值的计算;对剪贴板中的文本内容进行Hash值的计算;以及对鼠标拖入的文件内容进行Hash值的计算。 此外,QuickEncrypt还支持超过4GB容量的大文件加密和处理。 该工具集成了多项先进的安全机制以确保数据的完整性和安全性。具体而言,文件擦除策略包括:首先将文件名随机替换;然后,以32字节为单位向文件中写入全零字节序列;随后刷新数据并关闭文件;再次随机替换文件名;以32字节为单位向文件中写入全一字节序列;再次刷新数据并关闭文件;接着截断文件大小至零字节;最后删除整个文件。经过测试表明,常用数据恢复软件难以成功恢复这些文件的原始数据。 在Hash算法方面,QuickEncrypt采用OpenSSL 0.98提供的MD5(128位)和SHA1(160位)算法来进行校验和生成。 加解密密钥的生成过程则涉及用户输入的密码明文转换成UTF-8字节数组(不包含终止符),并分别计算MD5和SHA1哈希值。 MD5哈希值被用作AES 128位密钥,而SHA1哈希值则作为RC4密钥使用。 针对文本加密策略,该工具首先将明文数据转换成UTF-8字节数组(包含终止符);然后计算明文字段数组的CRC32校验码,用于解密时校验并将CRC32值放置在明文首字节之前;接下来尝试压缩步骤二的结果(采用zlib压缩级别9),若获得较小的压缩结果则输出压缩后的编码数组,否则直接输出步骤二的结果;随后对步骤三的结果进行RC4流加密(使用OpenSSL 0.98);再对步骤四的结果进行AES_CFB_128分组加密(使用OpenSSL 0.98);之后将结果进行Base64编码(使用OpenSSL 0.98);最后在编码结果的前面添加标记“QE: |”作为标识符并输出最终结果。 对于文件加密策略而言,该工具首先会判断输入文件的扩展名是否属于常见的压缩格式或流媒体编码格式,若为如此则不启用任何数据压缩功能以保证兼容性。 然后以1MB大小的分块读取明文文件数据; 对分块的明文数据分别计算MD5哈希值并将其附加到待加密的数据之前作为校验信息; 之后尝试压缩1MB大小的分块的数据, 若获得较小的压缩结果则输出压缩后的编码数据, 否则直接输出原文; 随后对步骤三的结果进行RC4流加密 (使用 OpenSSL 0.98); 再对步骤四的结果执行 AES_CFB_128分组加密 (使用 OpenSSL 0.98); 最后将分块的数据依次写入输出文件, 输出文件的文件名是在原文件名后添加了“.enc”后缀标识。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • 基于QtQuickEncrypt
    优质
    QuickEncrypt是一款基于Qt框架开发的轻量级数据加密与解密开源软件。它提供了简便快捷的安全工具,帮助用户保护个人文件和资料免受未授权访问。 QuickEncrypt 是一款简单易用的数据安全工具,通过托盘图标、悬浮窗以及鼠标拖拽和右键菜单的操作模式提供多种功能:文件及文本的加密与解密(采用RC4+AES算法)、Hash值计算(MD5和SHA1)以及数据的安全擦除。其特色在于“智能压缩”加密方式。 ### 功能介绍 - 对通过鼠标的文本进行加、解密操作 - 支持对剪贴板内的文本内容执行加、解密功能 - 文件的拖拽实现文件的加密与安全删除处理 - 提供鼠标拖入或复制到窗口中的数据计算MD5和SHA1哈希值的功能,包括文本及文件。 - 在进行文本或者文件的数据压缩时采用智能算法。 ### 安全机制 **2.1 数据擦除策略** 当需要彻底清除一个已加密的文档时,QuickEncrypt 会执行以下步骤: a) 将目标文件重命名为随机字符串; b) 向该文件中填充32字节大小的数据块(每个数据块为0); c) 刷新并关闭上述操作后的文件; d) 再次将此临时文件的名称更改为另一个随机序列,随后重复步骤 b 和 c 的过程但这次写入的是全1位数值。 e) 最后截断该文件至长度为零,并删除。 **2.2 Hash算法** 使用OpenSSL 0.98版本中的MD5(产生128位哈希)和SHA-1(生成160位散列值)两种标准进行数据校验。 **2.3 密钥管理策略** 用户输入的密码会首先转换成UTF-8字节流,然后计算出其对应的MD5与SHA-1哈希。前者作为AES 128位加密密钥使用;后者则用于RC4算法生成所需密钥。 **2.4 文本加密流程** a) 将原始文本转换为包含0终止符的UTF-8字节序列; b) 对上一步骤得到的数据计算CRC32校验码,同时将该值添加到明文数据前部以供后续解密时验证。 c) 通过zlib压缩算法(级别9)尝试对上述信息进行压缩处理;如果能够获得更小的文件大小,则输出经过压缩后的字节数组作为加密内容。 d) 使用RC4流式加密技术(OpenSSL 0.98版本实现)来保护步骤 c 中生成的数据; e) 再次利用AES CFB模式对上一步骤得到的结果进行分组处理和再编码。 f) 应用Base64算法将最终数据转换为文本格式,便于传输或存储。 g) 最后在加密后的字符串前加上标记QE:|作为识别标志。 **2.5 文件加密流程** a) 判断文件扩展名是否属于常见压缩类型;如果是,则跳过后续的数据压缩步骤; b) 分段读取原始文件数据(每1MB大小),并计算每个分块的MD5哈希值,用于解密时验证。 c) 尝试使用zlib算法对各子集进行压缩处理。如果成功获得更小的结果,则采用该形式输出;否则直接保存原样未压缩的数据; d-e) 分别应用RC4流式加密和AES CFB模式对该数据段执行两次加密操作,确保安全性。 f) 最后将所有密文部分连续写入到新创建的文件中,并在原始基础上添加.enc作为扩展名。
  • 【PythonPython简易番茄钟
    优质
    本项目旨在通过Python语言编写一个简单的番茄钟应用程序,帮助用户提高学习和工作的效率。该工具采用图形界面设计,功能包括定时提醒、短暂休息及长时间休息设定等。 最近听朋友提到番茄钟工具,感觉挺有趣想尝试一下。想了想觉得其实自己动手编写一个也不难,于是决定试一试。这个项目对于初学者来说难度不大且友好,非常适合新手尝试。 在此分享给大家,并感谢大家的支持。相关博客文章可以参考我的记录:《如何自制番茄钟》 希望对大家有所帮助!
  • 一个QT视频监控
    优质
    本项目为基于QT框架开发的开源视频监控系统,旨在提供高效、稳定的实时监控解决方案。欢迎贡献代码与反馈意见。 QT是一个强大的跨平台应用程序开发框架,主要使用C++语言编写。它为开发者提供了丰富的图形用户界面(GUI)工具和功能,使得开发桌面、移动甚至嵌入式设备的应用变得简单高效。“开源一个基于QT的监控视频项目”中可以看出该项目利用了QT的各种特性来构建一个实时监控视频系统。 在多媒体处理方面,QT支持多媒体框架,并且提供Q Multimedia模块用于音频和视频流的播放、捕获及处理。开发者可能通过使用QMediaPlayer和QVideoWidget等类实现视频显示与控制功能,包括播放、暂停、快进、快退等功能。 网络编程库也是该项目的关键部分之一。考虑到监控视频通常涉及远程数据传输,QT中的QNetworkAccessManager和QNetworkReply等类会被用来处理HTTP或RTSP协议,以获取并传输视频流。 此外,多线程支持在实时视频流处理中至关重要。为了保持用户界面的流畅性,在后台线程进行视频解码与播放操作是常见的做法。这可以通过QT提供的QThread类来轻松实现,并确保程序高效运行。 压缩包中的SktChickForest可能代表一个包含特定功能(如视频编码、解码算法或自定义网络通信协议)的库或者模块,而SktPlayerMde则可能是负责处理视频渲染和用户交互的主要播放器模块。 在QT项目中,界面设计通常借助于Qt Designer工具完成。通过该可视化工具创建UI布局后,.ui文件会在编译阶段转换为C++代码供程序使用。因此,在开源的监控视频项目中可能会看到这些.ui文件的存在。 综上所述,“开源一个基于QT的监控视频项目”结合了多媒体处理、网络通信和多线程能力,提供了一个实时监控解决方案。开发者利用C++及QT库创建出可以接收并播放视频流的应用程序界面,并可能实现了一些定制化的视频处理算法或通信协议。对于希望学习使用QT开发视频应用或者对监控系统感兴趣的开发者来说,这无疑是一个宝贵的资源。
  • Qt和C++代码行统计+
    优质
    这是一款基于Qt框架与C++语言编写的高效代码行数统计工具。其独特的界面设计及强大的功能使开发者能够轻松统计项目中的代码行数,帮助优化软件开发流程。同时提供完整源码,便于学习和二次开发。 该项目实现了对不同编程语言文件的代码行数进行统计。 统计的内容包括: 1. 代码行数 2. 注释行数 3. 空白行数
  • 使QT(C++)众日记APP(含码)
    优质
    这是一款采用QT和C++语言编写的个人日记应用软件的开源项目。该项目旨在为用户提供一个简洁而个性化的记录生活点滴的空间,并且开放了全部源代码,便于学习与二次开发。 项目资源涵盖了前端、后端、移动开发、人工智能、物联网、信息化管理、数据库、硬件开发、大数据以及课程资源等各种技术项目的源码,包括C++、Java、Python、web、C#及EDA等多个领域的代码。 这些资源适用于希望学习不同技术领域的初学者或进阶学习者。可以作为毕业设计项目、课程设计任务或者大作业使用,并且也适合工程实训和初期的项目立项参考。 每个项目的源码都具有较高的学习借鉴价值,可以直接拿来修改复刻。对于有一定基础的技术爱好者来说,在这些基础上进行二次开发和完善是非常有帮助的,能够实现更多功能拓展和技术创新。 如果有任何技术上的疑问或需要进一步探讨的内容,请随时与博主联系,博主会及时给予解答和建议。我们鼓励下载、使用并欢迎各位互相学习交流,共同进步。
  • Qt环境及依赖包,适于多Qt
    优质
    本资源提供全面的Qt开发环境及其核心依赖库,旨在简化新项目的启动过程,适合大多数基于Qt框架的应用程序开发需求。 Qt开发环境和支持的依赖包能够满足大多数的Qt开发需求。
  • QT2048游戏
    优质
    本项目采用Qt框架开发经典数字益智游戏《2048》,通过C++编程实现游戏逻辑与界面设计,为用户提供简洁且富有挑战性的游戏体验。 绘制是根据一个二维数组来存储的数值进行的。为了方便逻辑计算,我使用的是4*4的数组,并从1,1开始计数。
  • Qt案例
    优质
    《Qt项目开发案例》是一本通过具体实例详细讲解如何使用Qt框架进行高效跨平台应用开发的技术书籍。 Qt 是一个由 Qt Company 于1991年开发的跨平台 C++ 图形用户界面应用程序框架。它不仅可以用于创建图形用户界面程序,还适用于非GUI应用如控制台工具和服务器软件的开发。 作为一个面向对象的框架,Qt 使用了元对象编译器(Meta Object Compiler, moc)及一些宏来简化扩展过程,并支持真正的组件编程方式。2008年,Nokia 收购了 Qt Company 的技术部门,使得 Qt 成为了 Nokia 旗下的程序工具之一;到了2012年,Qt 被 Digia 公司收购。 在2014年4月发布的跨平台集成开发环境 Qt Creator 3.1.0 版本中,实现了对 iOS 完全支持,并引入了 WinRT 和 Beautifier 插件。该版本还废弃了没有 Python 接口的 GDB 调试功能,并整合基于 Clang 的 C/C++ 模块化编译系统,同时调整了 Android 平台的支持策略。 Qt 提供给开发者构建精美图形用户界面所需的全部工具和组件,与 X Window 系统上的 Motif、Openwin 和 GTK 图形库以及 Windows 上的 MFC、OWL、VCL 和 ATL 类似。
  • QT 绘图
    优质
    这是一款使用QT框架开发的专业绘图软件,功能强大且操作便捷,支持多种绘画模式和特效处理,适合设计师、艺术家及爱好者使用。 自己用QT模仿了window下的画图软件,编写了一个程序,大部分功能都已实现。
  • 笔记代码大
    优质
    《安卓项目开发笔记源代码大全》是一本全面记录Android应用开发过程中的实战技巧和经验总结的书籍,包含了丰富的源代码示例。 记事本应用程序包含文字输入、拍照、录音、视频和手写板功能。