iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >关于实训项目文件保护系统的总结
  • 335
分享到

关于实训项目文件保护系统的总结

实训文件项目 2023-01-30 23:01:11 335人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

       此次实训项目的核心内容是文件的保护系统,核心是对文件的加解密。开发之初,本着边做边学习的想法,我们选了毫无基础的python作为开发语言,对语法的不熟悉成为了我们最大的障碍。我们最终所实现的目标有如下几个:简单的用户管理、文

       此次实训项目的核心内容是文件的保护系统,核心是对文件的加解密。开发之初,本着边做边学习的想法,我们选了毫无基础的python作为开发语言,对语法的不熟悉成为了我们最大的障碍。我们最终所实现的目标有如下几个:简单的用户管理、文件加解密、用户公私密钥的分配。项目的运行过程如下:程序运行后显示登陆界面,用户输入的账号密码在经过哈希后与数据文件做对比,验证成功则进入主界面,并加载当前用户的数据文件,读取本用户的实时数据保险箱。登陆界面可以通过点击按钮跳转注册界面。主界面可以跳转密钥生成界面、实现文件加解密以及加密文件列表的显示。

  用户和文件的存取方式一致基本。每一个用户的信息构成一条字典信息,所有用户的信息作为一个列表,存入数据文件中。用户信息包括{用户名,密码,用户公钥},文件信息包括{文件路径(文件名),加密后文件数据,RSA加密后的AES的key值,加密模式}

  登陆界面密码以密文显示,实现代码:self.lineEdit_passWord.setEchoMode(QLineEdit.Password),登录按钮在按下后会调用验证函数,读取数据文件中的所有用户信息,验证用户名和密码。登陆界面具有记住密码功能,在配置文件config.ini中会记录当前用户名和密码以及记住密码是否被勾选,这些值在登陆成功后被写入config.ini。经过验证,此处不安全。即便不勾选记住密码,配置文件中依旧显示当前登陆用户名和密码。

  登陆界面可以直接跳转注册界面,注册界面与登陆界面代码基本一致。注册以后,在user.dat文件夹中写入用户名和密码的哈希值,同时写入公钥字段,初始值为空。

             

 

 

       密钥验证成功后,程序进入主界面中,在主界面显示时,会首先调用函数读取数据文件,若该用户尚无数据文件,则新建一个。在主界面,可以实现对文件的加密。文件加密是使用的对称加密方法AES的ECB模式,Key长度可选(16位或32位),Key由程序随机生成,Key值经过用RSA加密后存入数据文件,加密后的文件显示在下方文件列表中。解密时,用户需要提交私钥文件。私钥被提交后,程序先用私钥对一段固定信息进行签名,以当前用户的公钥进行验证,若匹配,则执行后续解密过程,若不匹配,则报错。在文件列表中,可以选中文件后点击解密按钮,也可以直接右键点击即可解密。在主界面显示过程中,程序会对数据文件中的文件数据进行读取,解密时,在变量中找到相关文件信息,读取文件Aes的key和加密模式,以用户私钥对key进行解密,然后再用Key对文件进行处理。

主界面可以跳转至密钥分配界面,当用户调转至密钥分配界面后,可以生成RSA 1024的密钥对,同时在程序会将其显示出。在用户点击保存私钥文件时,公钥被加载进用户数据文件,私钥被保存入以用户名命名的pem文件中,用户自行保存。

      界面的生成用了PYQt5,在使用过程中,有个问题主要注意,由QTdesigner设计的界面在转为代码以后,默认继承自object,这导致在该文件下直接添加代码会导致代码未必可用(比如我们曾试图让其弹出QMessageBox,不可行),在网上查找解决方法时,有人提出新建一个类,继承界面代码即可,并未验证。我们的解决方法为自己写一个相同的类,直接在init函数中调用界面函数的setUI函数。

      文件的读取和写入采用的 pickle和codecs 两个包,代码相当简洁易读。

  由于初次写Python,代码中大量复用其他人的代码,代码并不及规范,美观和可读性还需要提高。

  代码地址 https://GitHub.com/StevenQin97/FileVault.git

 

--结束END--

本文标题: 关于实训项目文件保护系统的总结

本文链接: http://www.lsjlt.com/news/180882.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 关于实训项目文件保护系统的总结
           此次实训项目的核心内容是文件的保护系统,核心是对文件的加解密。开发之初,本着边做边学习的想法,我们选了毫无基础的python作为开发语言,对语法的不熟悉成为了我们最大的障碍。我们最终所实现的目标有如下几个:简单的用户管理、文...
    99+
    2023-01-30
    实训 文件 项目
  • my.cnf文件关于组选项的总结
    1、[server]和[mysqld]的区别,没有看到官方文档,个人感觉server指整台服务器,mysqld指实例,当一台服务器上多个实例使用同一个配置文件my.cnf时,[server]通用于所有实例...
    99+
    2024-04-02
  • mysql关于db.opt文件的总结
    总结 1、create database时会自动生成一个文件db.opt,存放的数据库的默认字符集,show create database时显示数据库默认字符集即db.opt中字符集 2、这...
    99+
    2024-04-02
  • Springboot项目保存本地系统日志文件的实现方法
    背景:我们都知道springboot默认日志是打印在控制台中的,不会以文件的形式进行保存。那么日后系统上线肯定是有需要对日志进行定位分析问题的,那么如何实现将控制台输出的日志保存起来...
    99+
    2024-04-02
  • 基于C#的在线人脸识别系统开发项目经验总结
    引言随着人工智能和大数据技术的发展,人脸识别技术已经逐渐成为了生活中不可或缺的一项技术。而在线人脸识别系统的出现则为这项技术的应用提供了更便捷的方式。本文介绍了作者在开发基于C#的在线人脸识别系统中的经验总结。实现方式2.1 人脸检测人脸识...
    99+
    2023-11-03
    C# (编程语言) 在线人脸识别 (功能) 项目经验总结 (总结)
  • 基于C#的人力资源管理系统开发项目经验总结
    人力资源管理是现代企业不可或缺的一部分,随着信息技术的发展和信息化的推进,很多企业开始采用人力资源管理系统来优化人力资源管理的流程和效率。本文将基于C#语言开发人力资源管理系统的项目经验进行总结,包括需求分析、系统设计、开发实施等方面的内容...
    99+
    2023-11-04
    人力资源管理 C#开发 项目经验
  • VUE项目中引入JS文件的方法总结
    目录1.在index.html页面使用script标签引入2.在main.js中使用window.moduleName 使用3.手动添加export4. 使用import方式,把需要...
    99+
    2024-04-02
  • C语言关于文件的操作方法总结
    目录什么是文件程序文件数据文件文件名为什么要使用文件文件的操作文件缓冲区文件指针(FILE)文件的打开和关闭fopenfclose文件的打开方式流的相关概念文件的顺序读写fputcf...
    99+
    2024-04-02
  • 关于springBootyml文件的list读取问题总结(亲测)
    目录springBoot yml文件的list读取问题配置如下1.定义配置类2.定义启动的配置类3.使用方式读取yml文件里的list配置YAML 支持以下几种数据类型这里只介绍li...
    99+
    2024-04-02
  • C#开发新闻发布系统的项目经验总结
    C#开发新闻发布系统的项目经验总结项目背景新闻发布系统是一种用于发布和管理新闻内容的软件系统。随着互联网的发展,新闻媒体越来越重视在线新闻的传播和发布,因此,开发一个高效、稳定的新闻发布系统对于新闻机构来说是非常重要的。本文将对C#开发新闻...
    99+
    2023-11-02
    C#开发 新闻发布 项目经验总结
  • C#开发智能门禁系统的项目经验总结
    C#开发智能门禁系统的项目经验总结引言:随着科技的不断进步,智能门禁系统在如今的社会生活中扮演着非常重要的角色。智能门禁系统通过运用现代化的技术手段,实现了对出入人员的身份识别、权限控制、安全监控等功能。本文将围绕C#开发智能门禁系统的项目...
    99+
    2023-11-02
    C# 智能门禁系统 项目经验总结
  • C#开发智能安防系统的项目经验总结
    随着社会的不断发展,人们对安全的关注度越来越高。而在如今这个信息时代,计算机技术与安全系统的结合也变得越来越紧密。C#是一种常用的编程语言,在安防系统的开发中也会被广泛使用。本文将围绕着C#开发智能安防系统的项目经验总结展开。一、智能安防系...
    99+
    2023-11-02
    C#开发 智能安防系统 项目经验总结
  • C#开发智能监控系统的项目经验总结
    C#开发智能监控系统的项目经验总结随着科技的不断进步和社会的发展,智能监控系统在各个领域的应用越来越广泛。作为一名C#开发工程师,我有幸参与了一项智能监控系统的开发项目。在这个过程中,我积累了一些宝贵的项目经验,下面我将对此进行总结。首先,...
    99+
    2023-11-02
    智能监控系统 项目经验 关键词:C#开发
  • C#开发物流管理系统的项目经验总结
    C# 开发物流管理系统的项目经验总结近年来,随着物流行业的快速发展,物流管理系统成为各企业不可或缺的重要工具。在这个背景下,我参与了一个C#开发的物流管理系统项目,并在项目过程中积累了一些经验。在本文中,我将总结这些经验,希望对其他开发人员...
    99+
    2023-11-03
    C# 物流管理系统 项目经验总结
  • springboot项目读取 resources 目录下的文件的9种方式(总结)
    1: 使用 ClassLoader.getResourceAsStream() 方法   可以使用类加载器来获取资源文件的输入流。该方法接受一个资源文件路径参数,返回一个 InputStream 对象。 InputStream inputS...
    99+
    2023-08-18
    spring boot java spring
  • 怎么在Springboot项目中保存本地系统日志文件
    今天就跟大家聊聊有关怎么在Springboot项目中保存本地系统日志文件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 如下是集成,按步骤来:在项目的resources目录...
    99+
    2023-06-14
  • 关于项目管理的系统一个全面的视角
    项目管理是一个涉及多个方面的工作过程,包括计划、组织、领导和控制项目以达到预定的目标。然而,对于许多人来说,项目管理可能是一个复杂的概念,涉及到大量的信息和数据。在这种情况下,使用项目管理的系统就显得尤为重要。本文将从多个角度详细介绍关于项...
    99+
    2023-12-10
    项目管理 视角 系统
  • C#开发人事薪酬管理系统的项目经验总结
    C#开发人事薪酬管理系统的项目经验总结项目背景人事薪酬管理是企业管理中非常重要的一个环节,它涉及到员工的薪资发放、考核奖惩、福利待遇等诸多方面。为了更高效地管理和处理这些人事薪酬事务,我参与了一个C#开发人事薪酬管理系统的项目。该系统旨在通...
    99+
    2023-11-02
    人事管理 C#开发 薪酬系统
  • 利用C#开发在线投票系统的项目经验总结
    利用C#开发在线投票系统的项目经验总结引言在线投票系统是现代社会中常见的一种应用,它可以方便、快捷地收集大量的用户投票数据。利用C#语言来开发在线投票系统的过程中,我们遇到了一些挑战,也积累了一些宝贵的经验。在本文中,我们将对C#开发在线投...
    99+
    2023-11-02
    在线投票 C#开发 项目经验总结
  • C#开发智能停车管理系统的项目经验总结
    随着城市人口的增加和汽车数量的不断增长,停车已成为城市交通管理中的瓶颈问题。为了解决这一问题,智能停车管理系统应运而生。作为一名C#开发工程师,我在开发智能停车管理系统的过程中积累了一些经验,现在将其总结如下。一、需求分析在开发之前,对需求...
    99+
    2023-11-03
    C# 管理系统 智能停车
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作