Python开发记录--手撸加解密小工具(1)

目录

1.环境搭建

2. PyQt简介

3.小结


最近考虑设计一个涵盖国际、国家等加密算法的小工具,用于组内测试使用。一来回顾下算法,二来很久没写代码得练练手感,给工具取个名字:MuscleV0.1

MuscleV0.1涵盖的算法:

  • 对称算法:
    • AES(64\128\192\256)-ECB\CBC\OFB\CTR\XTX\GCM\CCM\CMAC\CBC-MAC\GFMUL
    • DES-ECB\CBC\OFB\CTR\CMAC\CBCMAC
    • TDES-ECB\CBC\OFB\CTR\CMAC\CBCMAC
    • SM4-128-ECB\CBC\OFB\XTS\GCM\CCM\CTR\CMAC\CBCMAC
  • 非对称算法:
    • RSASSA-1024\2048\3072\4096\8192
    • ECDSA-192\224\256\384\512\521
    • SM2DSA
  • 摘要算法:
    • SHA-1\224\256\384\512
    • MD5\SM3
    • HMAC-SHA224\256\384\512
    • HMAC-MD5\SM3

因此,为了实现上述功能,选用Python进行设计(密码库多),使用PyQt设计UI。

环境:Ubuntu 20.04.6,开发工具Pycharm、PyQt、Qt Designer、密码库。

1.环境搭建

解压Pycharm.tar.gz :

//压缩:
tar -xzvf xxx.tar.gz
//解压
tar -czvf xx.tar.gz xxx.c

运行pycharm(./pycharm.sh),我们就开始安装对应PyQt,为了下载更快速,添加镜像库:

https://pypi.tuna.tsinghua.edu.cn/simple/

找对应的PyQt即可。

当然使用python也可以进行安装,代码如下:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyqt6pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyqt6sudo apt install qttools5-dev-tools 

安装完成后,需要在Pycharm关联上外部工具,路径如下:Setting\Tools\...

 这一步主要目的是关联QtDesigner和PyUIC

 其中,Name可以任意取,Program即PyQt Designer对应的路径,工作路径可以填:$ProjectFileDir$

PyUIC:用于将生成的UI文件转为.py文件,因此需要填写参数,如下:

最关键的参数: $FileName$ -o $FileNameWithoutExtension$.py

到这里基本上可以用了,但是最关键的密码算法库还没有加入,这个后面再说,今天先设计UI。

2. PyQt简介

PyQt是一个用Python制作桌面软件的模块,它里面包含了很多组件,如QtCore, QtGui, QtWidgets, QtMultimedia, QtBluetooth, QtNetwork, QtPositioning, Enginio, QtWebSockets, QtWebKit, QtWebKitWidgets, QtXml, QtSvg, QtSql and QtTest.,这次要用的组件总结如下:

  • QtGUI:窗口的事件管理、图形管理等;
  • QtWidget:许多UI小部件,如按钮、标签、文本输入等等;
  • QtCore:核心代码

 首先打开QtDesigner来感性认识一下,Tool->External tool -> QtDesigner

 最开始要明白到底选择MainWindow还是Widget,新建两个窗体看看效果,如下图:

可以看到,MainWindow和Widget都是一个窗口类型的,但是MainWindow包含了QWidget、QMenuBar、QStatusBar等特性,因此如果想要设计一个大且完整的APP,用MainWindow;如果只是比较小的工具,用Widget。

而我们的MuscleV0.1,当然是大工具,得上MainWindow,它的整体逻辑如下:

菜单栏设计不同的功能,Widget则覆盖即将要设计的密码算法。 

在这里,我想设计为每一类算法为一个页面,用到Tab Widget,如下图:

 接下来就需要考虑UI里各种控件的安装,如何适配每个类型算法。

3.小结

QtDesigner里面是图形化界面,对我们理解各个控件非常有帮助。

今天就暂时先到这里,明天继续UI设计。

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

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

相关文章

数据分析:RT-qPCR分析及R语言绘图

介绍 转录组分析是一种用于研究细胞或组织中所有RNA分子的表达水平的高通量技术。完成转录组分析后,科学家们通常需要通过定量实时聚合酶链式反应(qRT-PCR)来验证二代测序(Next-Generation Sequencing, NGS)结果的可靠…

多品类第一!海尔智家618战绩出炉

618已经收官,从今年各大平台取消预售机制、简化流程等新动作来看,“回归用户”成为重中之重。而海尔智家从未离开用户,“以用户为中心”始终是海尔智家不变的坚持。 正因如此,今年618,海尔智家又把“第一”收入囊中。…

Django框架数据库ORM查询操作

Django框架在生成数据库的models模型文件后,旧可以在应用中通过ORM来操作数据库了。今天抽空试了下查询语句。以下是常用的查询语句。 以下查询需要引入django的Sum,Count,Q模块 from django.db.models import Sum,Count,Q 导入生成的mode…

【CPP】直接选择排序、堆排序

目录 1.选择排序1.1简介1.2代码1.3分析 2.堆排序2.1简介2.2代码2.3分析 1.选择排序 1.1简介 思路:遍历一遍,选出最大值和最小值的下标,然后与第一个和最后一个数字交换位置。 1.2代码 1.3分析 最好复杂度:O(N^2) 最差复杂度&am…

振动分析-5-基于CNN的机械故障诊断方法

参考基于CNN的机械故障诊断方法 CNN之图像识别 预训练模型迁移学习(Transfer Learning) 基于卷积神经网络(CNN)的深度迁移学习在声发射(AE)监测螺栓连接状况的应用 参考基于CNN的机械故障诊断所面临的困难和…

win 打包java项目为exe一键部署,包括mysql和redis

需求:打包springboot项目在win系统下执行,并且要一键部署和开机启动 把所需的程序放在同一个文件夹 1.jdk文件夹:自己去下载,jdk8的话拿jre目录好了 2.mysql文件夹:是8.0.36版,270M精简版了 3.redis文件夹…

Microsoft AI Day:支持开放合作,普及技术应用,推进行业企业智慧化创新

微软在北京举办以“共创AI创新,智启无限可能”为主题的Microsoft AI Day活动,集中展示了在生成式智能技术加速发展普及的过程中,微软取得的最新技术突破与进展,并同步更新了在Microsoft Build 2024全球开发者大会上发布的一系列Az…

人力资源招聘社会校企类型招聘系统校园招聘小程序

校企社会人力资源招聘小程序:开启高效招聘新时代 🚀开篇:打破传统,开启招聘新篇章 在快速发展的现代社会,人力资源招聘已经成为企业和学校共同关注的重要议题。为了更高效、便捷地满足双方的招聘需求,一款…

第58章SOCKET:TCP/IP网络基础

58.1 互联网 互联网会将不同的计算机网络连接起来并允许位于网络中的主机相互之间进行通信。互联网的目标是隐藏不同物理网络的细节以便向互联网中的所有主机呈现一个统一的网络架构,TCP/IP已经成了使用最为广泛的协议套件了, 术语Internet被用来指将全球…

【架构师】听说CDN服务把公司账户余额干趴了?我不服

最近老是看到八卦消息 说是某系统用了cdn的加速服务,某些学员一晚上学员几千个小时(真好学),结果一晚上就欠费,又是几千大洋没了,吓的我赶紧上链接(呸,上控制台看看) 关于…

【网络安全学习】使用Kali做信息收集-01-<域名信息主机信息>

1.收集开源情报 开源情报(Open Source Intelligence,OSINT)是指从各种公开的渠道中寻找和获取有价值的信息 如:互联网、媒体、社交网络、公共数据库等开源情报具有以下特点: - 丰富性:开源情报涵盖了各种类型和领域的信息 - 可…

关于归一化能量与归一化功率(连续与离散+1)

前言: ① 周期信号 与 直流信号 都是功率信号 ②一个信号可以既不是能量信号也不是功率信号,但不可能既是能量信号又是功率信号 归一化能量 对于一个连续时间信号 ( x(t) ),归一化能量 ( E ) 的定义为: E lim ⁡ T → ∞ ∫ −…

macOS聚集搜索功能开启与关闭

按下command空格弹出 使用搜索 关闭搜索 sudo mdutil -a -i off 启用搜索 sudo mdutil -a -i on

深信服科技:2023网络安全深度洞察及2024年趋势研判报告

2023 年,生成式人工智能和各种大模型迅速应用在网络攻击与对抗中,带来了新型攻防场景和安全威胁。漏洞利用链组合攻击实现攻击效果加成,在国家级对抗中频繁使用。勒索团伙广泛利用多个信创系统漏洞,对企业数据安全与财产安全造成了…

[创业之路-117] :制造业企业的必备管理神器-ERP-是什么?企业经营管理与EPR的主要功能模块与全流程

目录 一、什么是EPR 1.1 跨企业的供应链思想 1.2 EPR的概念:企业资源管理计划 1.2.1 助力企业管理各种资源:人、财、物(机、料、法、环) 1.2.2 助力企业有效管理 1.2.3 效率的提升 1.4 应用领域 二、ERP的功能模块 三、E…

AI金融投资:批量下载巨潮资讯基金招募说明书

打开巨潮资讯的基金招募说明书页面: http://www.cninfo.com.cn/new/fulltextSearch/full?searchkey%E5%B0%81%E9%97%AD%E5%BC%8F%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD%E8%AF%81%E5%88%B8%E6%8A%95%E8%B5%84%E5%9F%BA%E9%87%91%E6%8B%9B%E5%8B%9F%E8%AF%B4%E6%98%…

apple watch真机开发第一步连接xcode详细教程,开启watch开发者模式真的很坑啊啊啊啊啊

如何连接真机 1.首先先确保你的 Apple Watch 跟 你的 iPhone 已经配对完成 2.用数据线连接你的 iPhone 到电脑,等待一会,然后打开xcode,找到这个iphone,如果有警告提示,就需要打开开发者模式: Previous pr…

vscode + CMake编译(opencv显示图片工程)

1.opencv 2.Cmake 2.1 简介 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件;Cmake 并不直接建构出最终的软件,而是产生标准的建…

【数据结构与算法】稀疏矩阵(三元组,十字链表存储)详解

给出稀疏矩阵的节省内存的存贮结构并写出相应的输入、输出算法。 稀疏矩阵是一个大部分元素为0的矩阵。为了节省内存&#xff0c;我们可以只存储非零元素。一种常见的存储结构是三元组&#xff0c;每个三元组包含一个非零元素的行索引、列索引和值。 #include <stdio.h>…

STemWin在Windows上仿真运行环境配置

文章目录 一、STemWin介绍二、emWin必用的2个工具2.1 PC仿真器2.2 GUIBuilder图形化设计工具三、安装VS2022四、打开emwin仿真工程五、常见的配置修改5.1 运行内存修改5.2 LCD显示屏尺寸的修改一、STemWin介绍 emWin(Embedded Wizard Graphics Library)是Segger公司开发的嵌…