李臻20242817_安全文件传输系统项目报告_第14周 - 指南

news/2025/10/5 18:31:10/文章来源:https://www.cnblogs.com/wzzkaifa/p/19126873

安全文件传输系统项目报告(第 14 周)

1. 代码链接

Gitee 仓库地址:https://gitee.com/li-zhen1215/homework/tree/master/Secure-file

代码结构说明:

SecureFileTransfer/
├── client/ # 客户端主目录
│ ├── client # 命令行客户端可执行文件
│ ├── main.c # 命令行客户端主程序
│ ├── gui/ # Qt图形界面客户端
│ │ ├── mainwindow.h/.cpp # Qt主窗口
│ │ ├── main.cpp # Qt主程序入口
│ │ ├── SecureFileTransferClient.pro # Qt工程文件
│ │ └── ... # 其他Qt相关文件
│ ├── network/ # 客户端网络通信模块
│ │ ├── client_network.h/.c # 客户端Socket通信实现
│ └── crypto/ # 客户端加解密相关
├── server/ # 服务器端主目录
│ ├── server # 服务器端可执行文件
│ ├── main.c # 服务器主程序
│ ├── db/ # 数据库相关
│ │ ├── db.h/.c # SQLite操作
│ ├── crypto/ # 服务器端加解密相关
│ │ ├── sm2_utils.h/.c # SM2算法
│ │ ├── sm3_utils.h/.c # SM3算法
│ │ ├── sm4_utils.h/.c # SM4算法
│ ├── file_utils.h/.c # 文件操作工具
│ └── network/ # 服务器网络相关
├── common/ # 公共协议与工具
│ ├── protocol.h # 通信协议头文件
│ ├── utils.h/.c # 公共工具函数
├── doc/ # 文档
│ └── 设计说明.md
├── requirements.txt # 依赖说明
└── README.md # 项目说明

1、用户登录注册界面

在这里插入图片描述

该界面提供了用户登录和注册的入口,用户可以通过输入用户名和密码进行登录操作,或者选择跳转到注册界面以创建新账户。
通过该界面,用户能够顺利地完成登录或注册过程,从而访问系统的其他功能。

在这里插入图片描述

对登录失败的用户,系统会给予提示。

在这里插入图片描述

新用户可以在当前界面进行注册。

注册失败会有相应提示。

在这里插入图片描述

在这里插入图片描述

注册成功后便可在登录界面进行操作,并进入相关用户的主界面中。

2、主界面

用户登陆成功后,可在主界面进行文件管理,上传或下载文件。

在这里插入图片描述

在用户成功登录后,他们可以在主界面进行文件管理,包括上传和下载文件。
该界面提供了一个简洁直观的操作平台,用户可以通过选择本地文件并点击上传按钮,将文件安全地传输至服务器。此外,用户还可以下载已上传的文件,或删除不再需要的文件。
若文件列表未能及时更新,用户可通过点击界面右侧的刷新列表功能,以确保文件信息的实时更新。

mainwindow.cpp

#include <memory>#include "mainwindow.h"#include <QtCore/qbytearray.h>#include <QtCore/qmetatype.h>#if !defined(Q_MOC_OUTPUT_REVISION)#error "The header file 'mainwindow.h' doesn't include <QObject>."#elif Q_MOC_OUTPUT_REVISION != 67#error "This file was generated using the moc from 5.15.3. It"#error "cannot be used with the include files from this version of Qt."#error "(The moc has changed too much.)"#endifQT_BEGIN_MOC_NAMESPACEQT_WARNING_PUSHQT_WARNING_DISABLE_DEPRECATEDstruct qt_meta_stringdata_MainWindow_t {QByteArrayData data[9];char stringdata0[99];};#define QT_MOC_LITERAL(idx, ofs, len) \Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \qptrdiff(offsetof(qt_meta_stringdata_MainWindow_t, stringdata0) + ofs \- idx *sizeof(QByteArrayData)) \)staticconst qt_meta_stringdata_MainWindow_t qt_meta_stringdata_MainWindow = {{QT_MOC_LITERAL(0, 0, 10), // "MainWindow"QT_MOC_LITERAL(1, 11, 12), // "onSelectFile"QT_MOC_LITERAL(2, 24, 0), // ""QT_MOC_LITERAL(3, 25, 8), // "onUpload"QT_MOC_LITERAL(4, 34, 10), // "onDownload"QT_MOC_LITERAL(5, 45, 8), // "onDelete"QT_MOC_LITERAL(6, 54, 9), // "onRefresh"QT_MOC_LITERAL(7, 64, 15), // "showLoginDialog"QT_MOC_LITERAL(8, 80, 18) // "showRegisterDialog"},"MainWindow\0onSelectFile\0\0onUpload\0""onDownload\0onDelete\0onRefresh\0""showLoginDialog\0showRegisterDialog"};#undef QT_MOC_LITERALstaticconstuint qt_meta_data_MainWindow[] = {// content:8, // revision0, // classname0, 0, // classinfo7, 14, // methods0, 0, // properties0, 0, // enums/sets0, 0, // constructors0, // flags0, // signalCount// slots: name, argc, parameters, tag, flags1, 0, 49, 2, 0x08 /* Private */,3, 0, 50, 2, 0x08 /* Private */,4, 0, 51, 2, 0x08 /* Private */,5, 0, 52, 2, 0x08 /* Private */,6, 0, 53, 2, 0x08 /* Private */,7, 0, 54, 2, 0x08 /* Private */,8, 0, 55, 2, 0x08 /* Private */,// slots: parametersQMetaType::Void,QMetaType::Void,QMetaType::Void,QMetaType::Void,QMetaType::Void,QMetaType::Void,QMetaType::Void,0 // eod};void MainWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id,void **_a){if (_c == QMetaObject::InvokeMetaMethod) {auto *_t = static_cast<MainWindow *>(_o);(void)_t;switch (_id) {case 0: _t->onSelectFile();break;case 1: _t->onUpload();break;case 2: _t->onDownload();break;case 3: _t->onDelete();break;case 4: _t->onRefresh();break;case 5: _t->showLoginDialog();break;case 6: _t->showRegisterDialog();break;default:;}}(void)_a;}QT_INIT_METAOBJECT const QMetaObject MainWindow::staticMetaObject = {{QMetaObject::SuperData::link<QMainWindow::staticMetaObject>(),qt_meta_stringdata_MainWindow.data,qt_meta_data_MainWindow,qt_static_metacall,nullptr,nullptr}};const QMetaObject *MainWindow::metaObject()const{return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;}void *MainWindow::qt_metacast(constchar *_clname){if (!_clname)return nullptr;if (!strcmp(_clname, qt_meta_stringdata_MainWindow.stringdata0))return static_cast<void*>(this);return QMainWindow::qt_metacast(_clname);}int MainWindow::qt_metacall(QMetaObject::Call _c, int _id,void **_a){_id = QMainWindow::qt_metacall(_c, _id, _a);if (_id <0)return _id;if (_c == QMetaObject::InvokeMetaMethod) {if (_id <7)qt_static_metacall(this, _c, _id, _a);_id -= 7;}elseif (_c == QMetaObject::RegisterMethodArgumentMetaType) {if (_id <7)*reinterpret_cast<int*>(_a[0]) = -1;_id -= 7;}return _id;}QT_WARNING_POPQT_END_MOC_NAMESPACE

在这里插入图片描述
在这里插入图片描述

3、遇到的问题

问题1:gm库在项目中无法使用

问题2:程序在运行过程中有时会崩溃

在这里插入图片描述

将扩展的内存分配到当前文件夹中,并选择Apply,此时才能正常运行Ubuntu,否则会卡死。

4. 提交报告文档要求

Markdown 文档

转换为 PDF

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/928586.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一站多通怎么做网站饲料行业建设网站方案设计免费下载ppt

学习java之电脑的常用快捷键和DOS窗口下的常用命令电脑一些常用的快捷键win快捷键&#xff1a;单独按Windows&#xff1a;显示或隐藏 “开始”功能表WindowsBREAK&#xff1a;显示“系统属性” 对话框WindowsD&#xff1a;显示桌面或恢复桌面WindowsM&#xff1a;最小化所有窗口…

做网站套餐enjooy wordpress

本机文件夹同步到云服务器 内容精选换一换华为云帮助中心&#xff0c;为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档&#xff0c;帮助您快速上手使用华为云服务。本节操作介绍本地MacOS系统主机通过安装“Microsoft Rem…

长沙做网站 必看 磐石网络网店设计理念

随着我国人民精神文化与物质生活的不断升级&#xff0c;定制真人手办摆件的需求变得广泛&#xff0c;易模推出易模真人手办定制服务&#xff08;小程序&#xff09;&#xff0c;帮助市场合作伙伴能够以全线上、手机端形式为用户制作真人手办&#xff0c;“全线上”的内涵包括手…

洛谷P14120 题解 - lemon

思维路径 容易注意到,这个赛制对于 BaoBao 非常不友好,因为 DreamGrid 可以通过他出的牌来决定自己的出牌。也就是说,我们不需要关注 BaoBao 的出牌顺序,只需要关注他出的每一张牌对应 DreamGrid 出的牌即可。 对于…

通州网站建设服务做网站建设销售

主要实现的那种光晕效果&#xff1a;中间亮&#xff0c;四周逐渐变淡的。 这边有三种发光效果&#xff0c;先上效果图。 第一种、圆形发光体 实现代码&#xff1a;新建shape_light.xml&#xff0c;导入以下代码。使用时&#xff0c;直接给view设置为background。 <?xml …

请网站制作公司费用网站制作与网站建设pdf

Navicat创建数据库表 、导入sql文件&#xff0c;生成表结构 1.打开Navicat2.远程连接mysql连接3.创建数据库4.导入sql文件5.生成表结构 1.打开Navicat 2.远程连接mysql连接 3.创建数据库 4.导入sql文件 导入源代码中的sql文件 5.生成表结构

33 ACwing 294 Count The Repetitions 题解

Count The Repetitions 题面 定义 conn(s,n) 为 n 个字符串 s 首尾相接形成的字符串,例如: conn(“abc”,2)=”abcabc” 称字符串 a 能由字符串 b 生成,当且仅当 a 为 b 的子序列。 例如 abdbec 可以生成 abc,但是…

南沙做网站公司中国百强县市榜单

windows使用redis 安装和配置 下载安装方式一-使用压缩包安装解压到指定的文件Redis安装为Windows服务安装成功 方式二-MSI安装包安装完成 Redis配置远程访问1.修改配置文件redis.windows.conf2.修改完redis配置文件&#xff0c;必须重启redis 下载 先下载Redis for windows 的…

北京天通苑网站建设做网站公司报价

这是树的第10篇算法&#xff0c;力扣链接。 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7], po…

电赛电装实习总结

电赛电装实习总结电赛最致命的问题是验收时仪器没有调好,可能是输入阻抗的问题,导致指标全部不对,最好还是拿自己做的时候用的仪器。 很多实验室仪器落灰,不常用的仪器大多是有问题的,用之前一定要矫正,没有验证…

量化投资 —— 实践 (续)

量化投资 —— 实践 (续)地址: https://item.taobao.com/item.htm?id=935049768542&pisk=gzwtYk13ZwbgtBLwXrfhnbarSWsHk6qZpPrWnq0MGyULcPgiocgXOXi-XmijcoijHyacbVqf7rexRAG4sq0ikxE4yMblETqabxkCraXu8SKU6Y…

30 ACwing 291 蒙德里安的梦想 题解

蒙德里安的梦想 题面 求把 \(N \times M\) 的棋盘分割成若干个 \(1 \times 2\) 的长方形,有多少种方案 例如当 \(N = 2, M = 4\) 时,共有 5 中方案。当 \(N = 2, M = 3\) 时,共有 3 种方案\(1 \le N, M \le 11\) 题…

21 ACwing 289 环路运输 题解

环路运输 题面 在一条环形公路旁均匀地分布着 N 座仓库,编号为 1∼N,编号为 i 的仓库与编号为 j 的仓库之间的距离定义为 \(dist(i,j)=min(|i−j|,N−|i−j|)\),也就是逆时针或顺时针从 i 到 j 中较近的一种。 每座…

26 UVA1630 串折叠 Folding 题解

Folding 题面 折叠由大写字母组成的长度为 \(n\)(\(1\leqslant n\leqslant100\))的一个字符串,使得其成为一个尽量短的字符串,例如 AAAAAA 变成 6(A)。 这个折叠是可以嵌套的,例如 NEEEEERYESYESYESNEEEEERYESYES…

网站结构和布局区别郑州网站推广平台

心路历程&#xff1a; 这道题是一个动态规划题&#xff0c;但是其实递推关系很难想到&#xff0c;如下图所示&#xff1a; MDP建模&#xff1a; 状态&#xff1a;以i,j为右下角的正方形 动作候选集&#xff1a;这道题的动作候选集其实是是否选择其左上角邻接的三个位置&#x…

13 ACwing 283 Polygon 题解

Polygon 题面 “多边形游戏”是一款单人益智游戏。 游戏开始时,给定玩家一个具有 N 个顶点 N 条边(编号 1∼N)的多边形,如图 1 所示,其中 N=4。 每个顶点上写有一个整数 \(a_i\) ,每个边上标有一个运算符 +(加号…

12 ACwing 282 石子合并 题解

石子合并 题面 设有 N 堆石子排成一排,其编号为 1,2,3,…,N。 每堆石子有一定的质量 \(a_i\) ,可以用一个整数来描述,现在要将这 N 堆石子合并成为一堆。 每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和…

11 ACwing 281 Coins 题解

Coins 题面 给定 N 种硬币,其中第 i 种硬币的面值为 \(A_i\),共有 \(C_i\) 个。 从中选出若干个硬币,把面值相加,若结果为 S,则称“面值 S 能被拼成”。 求 1∼M 之间能被拼成的面值有多少个。 \(1 \le N \le 100…

某中心科学家荣获多项计算机技术大奖

本文详细介绍某中心科学家在计算机视觉、机器学习、自动化推理等领域的突破性研究成果,包括深度学习架构优化、组合优化算法、形式化验证等核心技术,以及他们在人工智能和量子计算等前沿领域的贡献。科研人员荣誉与奖…

4 ACwing 274 Mobile Service 题解

Mobile Service 题面 一个公司有三个移动服务员,最初分别在位置 1,2,3 处。 如果某个位置(用一个整数表示)有一个请求,那么公司必须指派某名员工赶到那个地方去。 某一时刻只有一个员工能移动,且不允许在同样的…