pyton对txt文件的读取写入和加密(含代码)

简介: pyton对txt文件的读取写入和加密(含代码)

首先是如何读取txt和写入txt


写入txt的代码如下:

# 写入
file_handle = open('./text.txt', mode='w')
file_handle.write("2003050204\n" + "123456")
file_handle.close()

读取的代码如下,需要注意的时contents是一个列表类型的变量。

# 读取
file_handle = open('./text.txt', mode='r')
contents = file_handle.readlines()
print(contents)

如何加密


下面的代码为加密和解密的函数,首先encrpt是加密部分,decrypt是解密部分。

from secrets import token_bytes
def random_key(length):
    key = token_bytes(nbytes=length)
    key_int = int.from_bytes(key, 'big')
    return key_int
def encrypt(raw):
    raw_bytes = raw.encode()
    raw_int = int.from_bytes(raw_bytes, 'big')
    key_int = random_key(len(raw_bytes))
    return raw_int ^ key_int, key_int
def decrypt(encrypted, key_int):
    decrypted = encrypted ^ key_int
    length = (decrypted.bit_length() + 7) // 8
    decrypted_bytes = int.to_bytes(decrypted, length, 'big')
    return decrypted_bytes.decode()

加密解密的原理


encrypt 函数接受一个 str 对象,返回元组 (int, int)。通过 encode 方法,我们将字符串编码成字节串。int.from_bytes 函数将字节串转换为 int 对象。最后对二进制对象和随机密钥进行异或操作,就得到了加密文本。


decrypt 接受两个 int 对象,分别为加密文本和随机密钥。首先对两者进行异或操作,计算解密出来的 int 对象所占比特数。decrypted.bit_length函数得到的是二进制数的位数,除以 8 可以得到所占比特大小。为了防止,1 ~ 7 位的二进制数整除 8 得到 0,所以要加上 7,然后再进行整除 8 的操作。使用 int.to_bytes 函数将解密之后的 int 的对象转换成 bytes 对象。最后通过 decode 方法,将字节串转换成字符串。

样例代码


str = "123456"
pwd = encrypt(str)
print(pwd)
pwd_2 = decrypt(*pwd)
print(pwd_2)
相关文章
|
12天前
|
XML Java 关系型数据库
如何给application.yml文件的敏感信息加密?
本文介绍了如何在SpringBoot应用中使用jasypt进行配置信息的加密解密。首先,需要添加jasypt-spring-boot-starter的依赖,版本至少为3.0.5。接着,在配置文件中设置`jasypt.encryptor.password`等参数。jasypt提供`StringEncryptor`接口用于加密解密,通过该接口可以在测试类中对敏感信息(如数据库用户名和密码)进行加解密。加密后的信息需带有`ENC()`前后缀。推荐将加密密码作为系统属性、命令行参数或环境变量传递,而不是直接写入配置文件。
|
10天前
|
算法 安全 测试技术
【传知代码】图像加密解密与数字水印处理-论文复现
该文主要介绍了图像加密解密和数字水印处理的重要性,并提供了相关技术的概述和原理。文章首先强调了信息安全和数据保护在数字化时代的需求,然后分别介绍了图像加密和解密以及数字水印处理的概念。 在图像加密解密部分,提到了两种方法:基于混沌Logistic映射的加密和基于三重DES的加密。前者通过混沌理论进行加密,后者使用经典的三重DES算法。文章提供了每种方法的基本原理,并展示了如何在Python中实现它们,包括使用`cryptography`库进行AES加密和利用PIL库进行图像处理。
【传知代码】图像加密解密与数字水印处理-论文复现
|
17天前
|
数据安全/隐私保护
如何自动(定时/间隔/重复)执行 同步文件、备份打包加密压缩文件
该文提供了一个工具的下载链接,分别在百度网盘和蓝奏云,提取码分别为&qwu2"和"2r1z"。工具的使用需结合之前发布的两篇教程:《快捷自由定时重启、注销、关机》和《如何从多个文件夹内转移全部文件(忽略文件夹的结构)(进行复制)(再打包)》。操作步骤包括设定"来源路径"进行Zip打包,启用"备份模式",然后保存批量复制任务,最后在定时器中执行已设置的批量文件复制任务。文中附有相关截图以供参考。
|
22天前
|
算法 PHP 数据安全/隐私保护
【实战】PHP代码逆向工具,轻松还原goto加密语句的神器!
`goto解密工具`是一款针对PHP的在线神器,能有效解密和还原goto加密代码,提升代码可读性和可维护性。支持单文件及50M压缩包一键解密,提供全效解决方案。通过实际案例展示了解密报错和理解复杂代码的能力,是PHP开发者解决goto难题的得力助手。立即体验:[在线PHP解密大师](https://copy.kaidala.com/dala/goto/index.html)。
38 1
|
22天前
|
安全 Java 数据安全/隐私保护
提升 Java 编程安全性 - 代码加密混淆工具的重要性和应用
提升 Java 编程安全性 - 代码加密混淆工具的重要性和应用
|
22天前
|
存储 算法 安全
Java代码能实现这些隐藏的加密功能
Java代码能实现这些隐藏的加密功能
67 0
|
22天前
|
JavaScript 前端开发 程序员
通过一篇文章带你解决如何加密代码任然可以运行
在实际生活中,作为程序员偶尔会因为资金不够用了选择去兼职写代码,当我们写完一个代码,将他发给某个公司的时候,我们经常会想到如何让目标公司看不见你写的源代码(源代码是你好不容易想出来的,难免不有些心疼嘛),但目标公司却可以运行他所需要的代码,下面我将讲解一种静态库的使用方法,来实现这个方法。
179 0
|
22天前
|
数据安全/隐私保护 Python Windows
Python办公自动化【Word转换PDF、PDF读取内容、PDF合并文件、PDF拆分文件、PDF加密文件、PPT基本操作-增加幻灯片、增加内容】(六)-全面详解(学习总结---从入门到深化)
Python办公自动化【Word转换PDF、PDF读取内容、PDF合并文件、PDF拆分文件、PDF加密文件、PPT基本操作-增加幻灯片、增加内容】(六)-全面详解(学习总结---从入门到深化)
62 0
|
22天前
|
安全 数据安全/隐私保护
如何使用GPG工具加密和解密文件?
如何使用GPG工具加密和解密文件?
221 0
|
22天前
|
PHP 数据安全/隐私保护