项目开发 1-确定选题,制作原型

一、AI问答

问:
作为计算机专家,密码学家,给研究生一年级学生设计20个实践项目,具体要求如下:
一. 总体要求

  • 必须使用 Linux 系统调用,要求使用文件I/O,多进程或多线程,一定要用到 Socket 系统调用
  • 项目类型必须是C/S架构,使用QT
  • 项目程序设计语言可以是C,Rust等
    二. 功能要求
  • 给出系功能结构,每个功能给出详细的要求
  • 系统要有身份鉴别,访问控制,审计功能
    三. 安全要求
  • 身份鉴别口令只保存使用sm3计算的Hash值,要加盐,数据库使用 Sqlite 或 MySQL
  • 密钥应用体现混合密码系统要求,密码算法要使用商用密码算法,至少要用到:sm2,sm3,sm4三种

答:

20 个实践项目设计

项目 1:安全文件传输系统

功能结构
  • 客户端 :具备文件选择、上传、下载、删除等功能,能显示文件传输进度和状态,可查看服务器文件列表。
  • 服务器端 :负责接收客户端连接请求,验证客户端身份,根据指令进行文件接收、发送、删除等操作,记录操作日志。
安全要求
  • 使用 sm2 算法进行身份认证,sm4 算法加密文件传输内容,sm3 算法对传输指令等进行哈希处理保证完整性。

项目 2:加密聊天系统

功能结构
  • 客户端 :实现文本输入、发送、接收显示,支持图片、文件等多媒体消息发送,有用户登录注册功能。
  • 服务器端 :管理客户端连接,转发消息,存储聊天记录,进行用户身份验证和访问控制。
安全要求
  • 用 sm2 算法进行用户身份认证,sm4 算法加密聊天内容,sm3 算法对消息摘要进行计算保证完整性。

项目 3:安全远程命令执行系统

功能结构
  • 客户端 :输入要执行的命令,发送到服务器,并接收显示服务器执行结果。
  • 服务器端 :接收客户端命令,验证客户端身份和权限,执行合法命令,将结果返回给客户端,记录命令执行日志。
安全要求
  • 通过 sm2 算法认证客户端身份,sm4 算法加密命令传输和结果返回过程,sm3 算法确保命令完整性和服务器响应的完整性。

项目 4:安全任务调度系统

功能结构
  • 客户端 :提交任务请求,查询任务状态和结果,可设置任务优先级和执行时间。
  • 服务器端 :接收任务请求,根据调度策略分配任务,执行任务并反馈结果,管理任务队列,进行用户身份和任务权限验证。
安全要求
  • 利用 sm2 算法进行身份鉴别,sm4 算法加密任务数据和结果,sm3 算法保证任务指令和调度信息的完整性。

项目 5:安全数据采集与上报系统

功能结构
  • 客户端 :采集本地数据(如传感器数据等),按照规定格式整理后上报给服务器,可接收服务器反馈和指令。
  • 服务器端 :接收客户端数据,验证客户端身份和数据合法性,存储数据,生成报表和分析结果,向客户端发送反馈和指令。
安全要求
  • 用 sm2 算法认证客户端身份,sm4 算法加密数据传输,sm3 算法对数据进行哈希处理保证完整性,防止数据篡改。

项目 6:安全文件共享系统

功能结构
  • 客户端 :浏览共享文件目录,下载文件,上传文件到共享目录,设置文件共享权限。
  • 服务器端 :管理共享文件存储,处理客户端文件操作请求,验证用户身份和权限,记录文件访问日志。
安全要求
  • 基于 sm2 算法进行身份认证,sm4 算法加密文件传输和共享目录信息,sm3 算法确保文件元数据和操作指令的完整性。

项目 7:安全在线考试系统

功能结构
  • 客户端 :考生登录,接收试题,作答并提交答案,查看考试结果和成绩。
  • 服务器端 :管理考试科目和试题库,向客户端发送试题,接收答案并评分,记录考试过程和成绩,进行考生身份验证和考试权限控制。
安全要求
  • 运用 sm2 算法对考生身份进行认证,sm4 算法加密试题和答案传输,sm3 算法保证试题完整性,防止试题泄露和篡改。

项目 8:安全日志管理系统

功能结构
  • 客户端 :查询日志,设置日志筛选条件,导出日志报表。
  • 服务器端 :收集各服务模块产生的日志信息,存储日志,根据权限提供日志查询服务,进行用户身份验证和访问控制。
安全要求
  • 采用 sm2 算法进行身份鉴别,sm4 算法加密日志内容,sm3 算法确保日志的完整性和不可抵赖性。

项目 9:安全软件更新系统

功能结构
  • 客户端 :检查软件更新,下载并安装更新包,查看更新历史和版本信息。
  • 服务器端 :存储软件更新包,管理版本信息,向客户端推送更新通知,验证客户端身份和更新请求合法性。
安全要求
  • 使用 sm2 算法认证客户端身份,sm4 算法加密更新包传输,sm3 算法对更新包进行哈希处理保证完整性,防止更新包被篡改。

项目 10:安全用户管理系统

功能结构
  • 客户端 :管理员登录,添加、删除、修改用户信息,设置用户权限,查询用户列表。
  • 服务器端 :存储用户信息和权限数据,处理客户端管理操作请求,验证管理员身份和操作权限,记录用户管理操作日志。
安全要求
  • 运用 sm2 算法进行管理员身份认证,sm4 算法加密用户敏感信息传输,sm3 算法确保用户数据和操作指令的完整性。

项目 11:安全图片分享系统

功能结构
  • 客户端 :上传图片,浏览和搜索图片,对图片进行评论、点赞等互动操作,设置图片隐私权限。
  • 服务器端 :存储图片和相关元数据,处理客户端图片操作请求,验证用户身份和权限,记录图片访问和操作日志。
安全要求
  • 用 sm2 算法认证用户身份,sm4 算法加密图片传输和存储,sm3 算法保证图片元数据和操作指令的完整性,防止图片被非法篡改。

项目 12:安全视频点播系统

功能结构
  • 客户端 :浏览视频列表,搜索视频,播放视频,查看视频详情和评论,进行用户登录注册。
  • 服务器端 :存储视频资源,处理客户端视频点播请求,验证用户身份和权限,记录视频播放日志。
安全要求
  • 基于 sm2 算法进行用户身份认证,sm4 算法加密视频传输和部分敏感信息,sm3 算法确保视频元数据和操作指令的完整性。

项目 13:安全在线存储系统

功能结构
  • 客户端 :上传、下载、删除文件,管理文件夹,设置文件共享链接和权限。
  • 服务器端 :存储用户文件,处理文件操作请求,验证用户身份和权限,记录文件操作日志。
安全要求
  • 利用 sm2 算法进行身份鉴别,sm4 算法加密文件传输和存储,sm3 算法保证文件元数据和操作指令的完整性,防止文件被篡改和非法访问。

项目 14:安全智能家居控制系统

功能结构
  • 客户端 :远程控制家中智能设备(如灯光、空调等),查看设备状态,设置定时任务和自动化场景。
  • 服务器端 :接收客户端控制指令,与智能设备通信,验证客户端身份和控制权限,记录设备操作日志。
安全要求
  • 采用 sm2 算法对客户端身份进行认证,sm4 算法加密控制指令和设备状态信息传输,sm3 算法确保指令完整性和设备状态数据的准确性。

项目 15:安全即时通讯群组系统

功能结构
  • 客户端 :加入和创建群组,发送文字、图片、文件等消息到群组,查看群组成员和聊天记录。
  • 服务器端 :管理群组信息,转发群组消息,验证用户身份和群组权限,记录群组聊天日志。
安全要求
  • 运用 sm2 算法进行用户身份认证,sm4 算法加密群组消息传输,sm3 算法保证消息完整性和群组操作指令的完整性。

项目 16:安全在线办公系统

功能结构
  • 客户端 :编辑和处理文档、表格、演示文稿等办公文件,在线协作编辑,文件版本管理。
  • 服务器端 :存储办公文件,处理客户端文件操作请求,验证用户身份和权限,记录文件操作日志。
安全要求
  • 使用 sm2 算法认证用户身份,sm4 算法加密文件传输和存储,sm3 算法确保文件元数据和操作指令的完整性,防止文件被非法篡改和泄露。

项目 17:安全在线商城系统

功能结构
  • 客户端 :浏览商品,搜索商品,加入购物车,下单购买,查看订单状态和历史订单。
  • 服务器端 :管理商品信息,处理客户端购物请求,验证用户身份和支付权限,记录交易日志。
安全要求
  • 基于 sm2 算法进行用户身份认证,sm4 算法加密用户个人信息和交易数据传输,sm3 算法保证商品信息和订单数据的完整性,防止数据被篡改。

项目 18:安全在线学习系统

功能结构
  • 客户端 :学习课程视频,阅读学习资料,完成作业和测试,参与讨论和互动。
  • 服务器端 :存储课程资源,管理学习进度和成绩,验证用户身份和学习权限,记录学习行为日志。
安全要求
  • 运用 sm2 算法进行用户身份认证,sm4 算法加密课程资源传输和用户敏感信息,sm3 算法确保课程资源完整性和学习操作指令的完整性。

项目 19:安全在线医疗系统

功能结构
  • 客户端 :患者预约挂号,查看医生信息,查询检验报告,在线问诊。
  • 服务器端 :管理医疗资源,处理患者预约和问诊请求,验证用户身份和医疗权限,记录医疗操作日志。
安全要求
  • 采用 sm2 算法对患者和医生身份进行认证,sm4 算法加密患者病历和检验报告等敏感信息传输,sm3 算法确保医疗数据的完整性和操作指令的准确性。

项目 20:安全物联网设备管理系统

功能结构
  • 客户端 :查看连接的物联网设备状态,远程配置设备参数,接收设备报警信息。
  • 服务器端 :与物联网设备通信,收集设备数据,处理客户端管理操作请求,验证客户端身份和权限,记录设备操作日志。
安全要求
  • 使用 sm2 算法认证客户端身份,sm4 算法加密设备数据传输和配置信息,sm3 算法保证设备数据完整性和操作指令的完整性,防止设备数据被篡改和非法访问。

二、选题和项目设计

1.选题

选择 安全文件传输系统

2.功能设计(AI)

问:请你针对“安全文件传输系统”,设计需要20 学时可以完成的功能。

答:

安全文件传输系统 20 学时功能设计

学时分配

模块学时内容
环境搭建与准备2安装 QT Creator、OpenSSL、GmSSL 和 MySQL,配置开发环境
服务器端基础开发3创建服务器程序框架,实现 Socket 监听和多线程处理
客户端基础开发3创建客户端程序框架,实现连接服务器和基本界面设计
文件传输功能开发5实现文件选择、上传、下载、删除和列表查看功能
安全机制集成5集成 sm2、sm3、sm4 算法,实现身份认证、数据加密和完整性校验
测试与优化2进行功能测试,修复 bugs,优化性能和用户体验

功能清单

环境搭建与准备

  • 安装软件 :在 Ubuntu 22.04 上安装 QT Creator、OpenSSL、GmSSL 和 MySQL 数据库,确保所有软件版本兼容。
  • 配置环境变量 :设置环境变量,使开发工具能够正确找到库文件和头文件。
  • 创建项目目录 :在合适位置创建项目目录,用于存放服务器端和客户端的源代码、配置文件等。

服务器端基础开发

  • 创建服务器程序框架 :使用 C 语言创建服务器程序,设置主函数和基本的程序结构。
  • Socket 监听实现 :使用 Socket 系统调用创建监听套接字,绑定端口,监听客户端连接请求。
  • 多线程处理 :为每个客户端连接创建新线程,实现多线程并发处理多个客户端请求。

客户端基础开发

  • 创建客户端程序框架 :使用 C 语言和 QT 创建客户端程序,设计基本的图形用户界面。
  • 连接服务器实现 :使用 Socket 系统调用连接到服务器,处理连接成功和失败的情况。
  • 基本界面设计 :设计文件选择、上传、下载、删除等按钮和显示区域,用于与用户交互。

文件传输功能开发

  • 文件选择功能 :在客户端实现文件选择对话框,允许用户选择本地文件进行上传。
  • 文件上传功能 :将选中的文件通过 Socket 发送到服务器,处理文件传输过程中的错误和中断情况。
  • 文件下载功能 :从服务器接收文件并保存到本地,显示下载进度。
  • 文件删除功能 :向服务器发送删除文件的指令,服务器执行删除操作并反馈结果。
  • 文件列表查看功能 :从服务器获取文件列表信息并在客户端显示,包括文件名、大小、修改时间等。

安全机制集成

  • sm2 身份认证集成 :在客户端和服务器端实现 sm2 算法,对用户身份进行认证,确保只有授权用户才能进行文件传输。
  • sm4 数据加密集成 :使用 sm4 算法对传输的文件内容进行加密和解密,保证文件在传输过程中的保密性。
  • sm3 完整性校验集成 :在文件传输前后,使用 sm3 算法对文件和传输指令进行哈希计算,确保数据的完整性和未被篡改。

测试与优化

  • 功能测试 :对系统的各项功能进行全面测试,包括文件传输的准确性、速度、安全性等,记录测试结果和发现的问题。
  • Bugs 修复 :根据测试结果,修复发现的 bugs,确保系统稳定运行。
  • 性能优化 :对系统性能进行优化,如提高文件传输速度、降低资源占用等,提升用户体验。

安全功能详细设计

身份鉴别

  • 用户注册 :客户端提供用户注册功能,用户输入用户名和密码。密码在客户端使用 sm3 算法进行加盐哈希处理后存储在 Sqlite 数据库中。
  • 用户登录 :用户输入用户名和密码,客户端将密码进行同样的 sm3 加盐哈希处理后发送给服务器。服务器从数据库中获取该用户的哈希值进行比对,验证身份。
  • 会话管理 :登录成功后,服务器为该用户创建一个会话,生成会话 ID 并发送给客户端。后续通信中,客户端使用会话 ID 进行身份标识,服务器验证会话 ID 的有效性。

访问控制

  • 用户权限设置 :在数据库中为每个用户设置不同的权限级别,如普通用户、管理员等。不同权限级别的用户具有不同的文件操作权限。
  • 文件权限管理 :对服务器上的文件设置访问权限,如只读、读写等。用户根据其权限级别和文件权限进行相应的操作。
  • 操作验证 :服务器在接收到客户端的文件操作请求时,验证用户是否具有相应的权限。如果没有权限,拒绝请求并返回错误信息。

审计功能

  • 日志记录 :服务器记录所有用户的操作日志,包括登录、文件上传、下载、删除等操作的时间、用户、操作对象和结果等信息。
  • 日志存储 :将操作日志存储在 MySQL 数据库中,方便后续的查询和分析。
  • 日志查询 :提供日志查询功能,管理员可以按照时间、用户、操作类型等条件进行日志查询,以便对系统进行审计和监控。

三、设计系统原型

1、系统功能图

在这里插入图片描述

2、系统原型图

在这里插入图片描述

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

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

相关文章

使用SetupTools 管理你的项目打包工作

Setuptools 是一个用于 Python 的包管理工具,主要用于构建、打包和分发 Python 软件包。它是 distutils 的增强版,提供了更多的功能和灵活性,是 Python 包管理的核心模块之一。 功能与特点 依赖管理:Setuptools 提供了强大的依赖…

人工智能与人的智能,改变一生的思维模型【8】逆向思维

逆向偏差思维模型:顶尖高手如何「反常识」破局 (斯坦福决策科学中心认证的逆向思考框架) 一、直击本质:什么是逆向偏差思维? 定义: 逆向偏差思维是一种主动对抗本能认知倾向的决策模式,通过系…

YOLO优化之扫描融合模块(SimVSS Block)

研究背景 在自动驾驶技术快速发展的背景下,目标检测作为其核心组成部分面临着严峻挑战。 驾驶场景中目标尺度和大小的巨大差异 ,以及 视觉特征不显著且易受噪声干扰 的问题,对辅助驾驶系统的安全性构成了潜在威胁。 传统的卷积神经网络(CNN)虽然在目标检测领域取得了显著…

(全)2024下半年真题 系统架构设计师 综合知识 答案解析01

系统架构设计师第二版教程VIP课程https://edu.csdn.net/course/detail/40283 操作系统 下列选项中不能作为预防死锁措施的是 。 A. 破坏“循环等待"条件 B. 破坏“不可抢占”条件 C. 破坏“互斥”条件 D. 破坏“请求和保持”条件 答案:C 解析&…

通义万相 2.1 + 蓝耘算力,AI 视频生成的梦幻组合

在这个科技日新月异的时代,人工智能不断刷新着我们对世界的认知。一次偶然的机会,我借助北京蓝耘科技股份有限公司提供的算力支持,踏上了使用通义万相 2.1 进行 AI 视频生成的奇妙之旅。 目录 1.1初遇蓝耘科技: 1.2通义万相 2.1…

链表·简单归并

cur->next la; //将 p指针所指向的链表节点的 next 指针(也就是 p 节点的下一个节点的指针)指向 l1 所指向的链表节点。简单来说,就是把 la 节点连接到 p 节点的后面,更新了链表的连接关系。 p la; //将p指针的值更新为 la …

kmp报错→Cannot find skiko-windows-x64.dll.sha256

1、前言 学习kmp(Kotlin MultiPlatform简称)过程中报了错误,这个报错在直接运行desktop的main方法才会出现,用gradle运行却不会报错,新建的kmp项目也不会出现,我学习的写了一些代码的项目才会出现。   运…

MySQL(事物下)

目录 一 多版本并发控制( MVCC )是一种用来解决 读-写冲突 的无锁并发控制 1. 前置知识 示例: 二 Read View 1. 当事物进行快照读(读历史数据)会MySQL会创建一个Read Vidw类对象,用来记录和当前一起并发的事物(活跃的事物)&a…

星型组网模块的两种交互方式优缺点解析

星型组网模块简介 星型组网模块工作在433MHz频段;星型组网模块集主机(协调器)、终端为一体,星型组网模块具有长距离、高速率两种传输模式,一个主机(协调器)支持多达200个节点与其通讯&#xff0…

IMX6ULL学习整理篇——UBoot的一些基础知识(1.编译流程)

前言 笔者整理了最近刷IMX6ULL的一些学习笔记,这里打算稍微整理一下东西发上来作为作为一个补充 正文 大部分而言,当我们拿到源码的时候,一般都是——先使用make来生成一份针对我们目标开发板的配置。举个例子,正点原子针对他们…

docker桌面版启动redis,解决无法连接

docker run -d --name redis -p 6379:6379 -v E:\2\redis\redis.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf 在本地创建一个目录,里面有个redis.conf文件,内容如下,启动时绑定这个配置文件目…

2025-03-15 学习记录--C/C++-PTA 习题3-3 出租车计价

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻 一、题目描述 ⭐️ 习题3-3 出租车计价 本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下&#xff1…

《C++ Primer》学习笔记(二)

第二部分:C标准库 1.为了支持不同种类的IO处理操作,标准库定义了以下类型的IO,分别定义在三个独立的文件中:iostream文件中定义了用于读写流的基本类型;fstream文件中定义了读写命名文件的类型;sstream文件…

数据类设计_图片类设计之6_混合图形类设计(前端架构)

前言 学的东西多了,要想办法用出来.C和C是偏向底层的语言,直接与数据打交道.尝试做一些和数据方面相关的内容 引入 接续上一篇,讨论混合图形类设计 方法论-现在能做什么 这段属于聊天内容---有句话是这么说的:不要只埋头拉车,还要抬头看路。写代码也是…

招聘信息|基于SprinBoot+vue的招聘信息管理系统(源码+数据库+文档)

招聘信息管理系统 目录 基于SprinBootvue的招聘信息管理系统 一、前言 二、系统设计 三、系统功能设计 5.1系统功能模块 5.2管理员功能模块 5.3企业后台管理模块 5.4用户后台管理模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、…

【软件】免费的PDF全文翻译软件,能保留公式图表的样式

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 很多PDF全文翻译软件都是收费的,而划线翻译看着又很累。这个开源的PDF全文翻译软件非常好用,并且能够保留公式、图表、目录和注…

79.HarmonyOS NEXT 手势操作模型详解:移动、缩放与旋转的实现原理

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! HarmonyOS NEXT 手势操作模型详解:移动、缩放与旋转的实现原理 文章目录 HarmonyOS NEXT 手势操作模型详解:移动、缩放与旋…

解读Ant Design X API流式响应和流式渲染的原理

前言 AI是未来世界的趋势,deepseek的出现让在国内构建更多的大模型出现了更多的可能。而从前端出发,Ant design团队最近很有意思,基于这个背景,提供了一套面向构建平台化产品的组件。 本篇结合Ant design AI的XSteam、XRequesta…

CentOS 7 64 安装 Docker

前言 在虚拟机中安装 Docker 是一种常见的测试和开发环境搭建方式。通过在虚拟机上安装 Docker,可以方便地创建和管理容器化应用,同时避免对宿主机系统造成影响。以下是在 CentOS 7 虚拟机中安装 Docker 的详细步骤。 1. 更新系统(可以不操作…

SPI驱动(八) -- SPI_DAC设备驱动程序

文章目录 参考资料:一、编写设备树二、 编写驱动程序三、编写测试APP四、Makefile五、上机实验 参考资料: 参考资料: 内核头文件:include\linux\spi\spi.h内核文档:Documentation\spi\spidevDAC芯片手册:…