广告
返回顶部
首页 > 资讯 > 后端开发 > Python >用Python制作一个文件加密器
  • 157
分享到

用Python制作一个文件加密器

2024-04-02 19:04:59 157人浏览 八月长安

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

摘要

目录前言下载地址效果预览加密算法总结前言 因为一些懂得都懂的原因,我的父母对于我电脑上的文件内容特别感兴趣。为了防止信息泄露,我连夜用python做了一个文件加密器,防止我的重要信息

前言

因为一些懂得都懂的原因,我的父母对于我电脑上的文件内容特别感兴趣。为了防止信息泄露,我连夜用python做了一个文件加密器,防止我的重要信息被泄露。

在这里插入图片描述

下载地址

GitHubhttps://github.com/13337356453/FileCipher

GitHub上的资源是Python源代码

效果预览

为了方便操作,我用PyQt做了窗口。运行起来是这样的。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

加密效果还是很不错了

加密算法

对于我来说,程序中gui的编写算比较简单。困难的是加密算法的编写。

先把密码的代码贴出来,在详细讲解。

class Cipher:
    key = ""

    def __init__(self, key):
        self.key = key

    def seTKEy(self, key):
        self.key = key

    def getKey(self):
        return self.key

    def parseKey(self, key):
        # 处理密钥
        if key != "":
            o = 0
            for k in key:
                n = 0
                i = str(ord(k))
                for t in i:
                    n += int(t)
                o += n
            # 使密钥范围控制在10-100之间
            while True:
                if o < 10:
                    o = int(o * 2)
                elif o > 100:
                    o = int(o / 2)
                else:
                    return o
        return

    def getOdd(self, max):
        return [i for i in range(1, max + 1) if i % 2 == 1]

    def encrypt(self, data):
        # 加密算法
        if data == "":
            return
        result = ""
        length = len(data)  # 获取数据长度
        a = [ord(x) for x in data]
        # 判断是否为4的倍数
        remainder = length % 4  # 余数
        if remainder != 0:
            b = 4 - remainder
            for c in range(b):
                a.append(0)
        # 第一次分组
        groups = []
        d = len(a) // 2
        e1 = a[:d]
        e2 = a[d:]
        indexs = self.getOdd(d)
        groups.append([e1[i - 1] for i in indexs])
        groups.append([e1[i] for i in indexs])
        groups.append([e2[i - 1] for i in indexs])
        groups.append([e2[i] for i in indexs])
        # 第二次分组
        f1 = groups[0] + groups[3]
        f2 = groups[1] + groups[2]
        # 第一次加密
        keycode1 = self.parseKey(self.getKey())
        g = []
        for h in f1:
            i = h + keycode1
            j = chr(i)
            g.append(i)
            result += j
        # 第二次获取keycode
        k = str(sum(g))
        keycode2 = self.parseKey(k)
        # 第二次加密
        for l in f2:
            m = l + keycode2
            n = chr(m)
            result += n
        # 加密完成
        return result

    def decrypt(self, data):
        # 解密算法
        if data == "":
            return
        result = ""
        # 获取keycode1
        keycode1 = self.parseKey(self.getKey())
        # 第一次解密
        a = len(data) // 2
        b1 = data[:a]
        b2 = data[a:]
        c = [ord(d) for d in b1]
        e = [f - keycode1 for f in c]
        # 获取keycode2
        g = str(sum(c))
        keycode2 = self.parseKey(g)
        # 第二次解密
        h = [ord(i) for i in b2]
        j = [k - keycode2 for k in h]
        # f1对应e , f2对应j
        # 第一次分组
        k = len(e) // 2
        group1 = e[:k]
        group4 = e[k:]
        group2 = j[:k]
        group3 = j[k:]
        # 第二次分组
        datalength = len(group1) + len(group2) + len(group3) + len(group4)  # 数据长度
        l = datalength // 4
        m = []
        for n in range(l):
            m.append(group1[n])
            m.append(group2[n])
        o=[]
        for p in range(l):
            o.append(group3[p])
            o.append(group4[p])
        # 数据拼接
        q=m+o
        for r in q:
            result+=chr(r)
        # 返回结果
        return result

大概的处理过程是这样的

在这里插入图片描述

随便画的,大概就是这个流程,有什么错误也懒得管了

先将密钥进行处理,把密钥转化为ASCII,并且把所有数字相加得到和,通过乘除法将密钥的范围控制在10-100之间。
再处理数据,讲数据分为4组,不足位数用00补齐。分组之后再进行交叉分组。得到第二次分组的结果。对结果一利用密钥进行处理,得到数据一。再将结果一之和进行密钥处理,得到密钥二。
再对结果二利用密钥二进行处理,得到数据二。
拼接数据一和二,得到加密数据。

解密就是逆向操作了。

总结

到此这篇关于用Python制作一个文件加密器的文章就介绍到这了,更多相关Python文件加密内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 用Python制作一个文件加密器

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

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

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

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

下载Word文档
猜你喜欢
  • 用Python制作一个文件加密器
    目录前言下载地址效果预览加密算法总结前言 因为一些懂得都懂的原因,我的父母对于我电脑上的文件内容特别感兴趣。为了防止信息泄露,我连夜用Python做了一个文件加密器,防止我的重要信息...
    99+
    2022-11-13
  • 11g rac 添加一个控制文件
    一、环境11g rac 二、演示步骤1. 查看控制文件路径SYS@ysdb1>show parameter control_files NAME   ...
    99+
    2022-10-18
  • 教你用python实现一个加密的文字处理器
    这是一个类似于记事本的文字处理器。与正常的记事本不同的是,它会将文本文档进行加密,确保无法被常规的程序打开。 由于本人是一位业余编程爱好者,对于“python之禅&rdq...
    99+
    2022-11-11
  • 怎么用Python制作一个文件去重小工具
    这篇文章主要讲解了“怎么用Python制作一个文件去重小工具”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python制作一个文件去重小工具”吧!前言常常在下载网络素材时有很多的重复文...
    99+
    2023-06-29
  • 基于Python制作一个文本翻译器
    translate非标准库是python中可以实现对多种语言进行互相翻译的库,使用时只需要设置目标语言(比如:中文、英文)后,会自动将原始文本翻译成我们需要的目标语言。 使用pip...
    99+
    2022-11-10
  • 基于Python制作一个文件解压缩工具
    经常由于各种压缩格式的不一样用到文件的解压缩时就需要下载不同的解压缩工具去处理不同的文件,以至于桌面上的压缩工具就有三四种,于是使用python做了一个包含各种常见格式的文件解压缩的...
    99+
    2022-11-11
  • 基于Python制作一个文件去重小工具
    目录前言实现步骤补充前言 常常在下载网络素材时有很多的重复文件乱七八糟的,于是想实现一个去重的操作。 主要实现思路就是遍历出某个文件夹包括其子文件夹下面的所有文件,最后,将所有文件...
    99+
    2022-11-13
  • 用python复制文件内容到另外一个文件
    用python复制文件内容到另外一个文件的方法:1、使用open函数打开2个不同文件;2、使用read()读取其中一个文件;3、使用write()函数写入刚刚读取的内容;4、使用close()函数关闭文件即可。具体代码如下:定义两个文件并打...
    99+
    2022-10-09
  • 基于PyQt5制作一个PDF文件合并器
    操作说明:选择多个PDF文件,执行完合并后会生成一个新的PDF文件,这个新的PDF文件包含所有源PDF文件的页面。 将相关的三方模块导入到代码块中... from PyQt5.Qt...
    99+
    2022-11-13
  • 详解如何通过Python制作一个密码生成器
    目录原由编程思路代码效果如下补充原由 定期更换密码是一种非常重要的安全措施,这种做法可以有效地保护你的账户和个人信息不受黑客和网络攻击者的侵害。 密码泄露是一个非常普遍的问题,许多人...
    99+
    2023-05-19
    Python实现密码生成器 Python密码生成器 Python密码
  • 一文教你利用Python制作一个生日提醒
    目录1. 实战1-1  安装依赖1-2  创建数据表1-3  查询数据1-4  遍历,获取距离今天的天...
    99+
    2022-12-27
    Python生日提醒 Python生日 Python 提醒
  • 基于Python怎么制作一个文件解压缩工具
    经常由于各种压缩格式的不一样用到文件的解压缩时就需要下载不同的解压缩工具去处理不同的文件,以至于桌面上的压缩工具就有三四种,于是使用python做了一个包含各种常见格式的文件解压缩的小工具。常见的压缩格式主要是下面的四种格式:zip 格式的...
    99+
    2023-05-14
    Python
  • 怎么在 Linux 上创建一个加密文件保险库
    这篇文章主要介绍“怎么在 Linux 上创建一个加密文件保险库”,在日常操作中,相信很多人在怎么在 Linux 上创建一个加密文件保险库问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么在 Linux 上创建...
    99+
    2023-06-15
  • 利用Python+Excel制作一个视频下载器
    说起Excel,那绝对是数据处理领域王者般的存在。 而作为网红语言Python,在数据领域也是被广泛使用。 其中Python的第三方库-xlwings,一个Python和Excel的...
    99+
    2022-11-11
  • 如何用Python制作一个C盘清理器
    今天小编给大家分享一下如何用Python制作一个C盘清理器的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。关于python的文...
    99+
    2023-07-05
  • 如何使用python加密主机文件
    这篇文章主要讲解了“如何使用python加密主机文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用python加密主机文件”吧!数据加密是一种保护数据安全的技术,通过对数据进行编码,...
    99+
    2023-07-05
  • Python+PyQt5制作一个图片查看器
    目录前言实现方式测试前言 在 PyQt 中可以使用很多方式实现照片查看器,最朴素的做法就是重写 QWidget 的 paintEvent()、mouse...
    99+
    2022-11-13
  • Python跨文件调用函数以及在一个文件中执行另一个文件
    目录一、项目简介二、调用类型1、调用同文件中的函数2、调用同目录下不同文件中的函数3、调用同级文件夹文件中的函数4、调用上一级文件夹文件中的函数5、调用上一级文件夹子文件夹下文件中的...
    99+
    2022-12-09
    python跨文件调用函数 python函数之间的调用 python一个文件中执行另一个文件代码
  • 使用python怎么破解加密zip文件的密码
    使用python怎么破解加密zip文件的密码?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具...
    99+
    2023-06-14
  • 利用Python制作一个MOOC公开课下载器
    目录导语开发工具环境搭建先睹为快原理简介导语 记得很久以前写过一些中国大学MOOC上的视频下载器,不过好像都已经年久失修了。正好最近有需要,所以重新写了一个,顺便上来分享一波,寒假大...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作