python实现加解密文本文件(二)

本文介绍了一个使用Python进行文本文件加解密的实验,通过异或操作实现简单加密。实验包括生成随机密钥、加密解密单元的函数,并对字符串和文本文件进行加解密操作。实验环境为Python 3.6及以上版本,基于二进制异或原理进行加解密。
摘要由CSDN通过智能技术生成

实验的知识点铺垫请见:python实现加解密文本文件(一)

一、实验目的

Python提供了诸如 hashlib, base64等便于使用的加密库。但对于日常学习而言,我们可以借助异或操作,实现一个简单的文件加密和解密程序。

二、实验内容

1.任务1:定义生成随机密钥的函数。函数带有一个参数L;函数生成一个包含L个字节的随机字节串(可以借助secrets包中的token_bytes模块实现),并将随机字节串转换成整数返回。
2. 任务2:定义实现加密单元的函数。函数带有一个字符串参数;函数将字符串编码为字节串并转换为整数,然后将它与一个随机密钥进行异或运算生成密文,最后将密文和随机密钥返回。
3. 任务3:定义实现解密单元的函数。函数带有两个参数,分别是任务2中函数返回的密文和密钥。函数将密文和密钥进行异或运算,然后计算密文的长度,最后返回解密后的字符串。
4. 任务4:利用上面定义的三个函数,对下面两个字符串进行加解密操作。
string1 = “路漫漫其修远兮,吾将上下而求索。”
string2 = “Never put off until tomorrow what may be done today.”
5. 任务5:利用json 模块和pathlib包中的Path模块,分别定义一个加密文本文件的函数和一个解密文本文件的函数。
提示:在实验过程中,用help()和dir()等帮助函数查阅相关模块、函数和方法的用法。

三、实验环境

Python 3.6即以上版本

四、实验原理和步骤

按照二进制数异或的原理,对文本文件进行加解密。

  1. 加密操作
    首先将文本文件转换为二进制数,再生成与该二进制数等长的随机密钥,将二进制数与密钥进行异或操作,得到加密后的二进制数。
  2. 解密操作
    将加密后的二进制文件与密钥进行异或操作,得到原来的二进制数,再将二进制数恢复成文本文件。

五、实验代码及运行结果

实现字符串加解密:
#生成随机密钥
L = 8
from secrets import token_bytes
def getKey(L):
    key = token_bytes(L)
    key_int = int.from_bytes(key,'big')
    return key_int
# 加密单元
def encrypt(raw):
    raw_bytes = raw.encode('utf-8')     #将字符串编码为字节串
    raw_int = int.from_bytes(raw_bytes,'big') #将字节串转化为整数
    key_int = getKey(L)                 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值