我现在想创建一个自己的后缀文件,想进行加密,要怎么创建和读取呢,使用python
时间: 2024-02-22 14:56:19 浏览: 19
要创建自己的后缀文件并进行加密,您可以使用Python的文件操作和加密库来实现。下面是一个简单的示例代码:
```python
import os
from cryptography.fernet import Fernet
# 生成密钥
key = Fernet.generate_key()
# 加密文件
def encrypt_file(filename, key):
f = Fernet(key)
with open(filename, 'rb') as file:
file_data = file.read()
encrypted_data = f.encrypt(file_data)
with open(filename + '.encrypted', 'wb') as file:
file.write(encrypted_data)
# 解密文件
def decrypt_file(filename, key):
f = Fernet(key)
with open(filename, 'rb') as file:
encrypted_data = file.read()
decrypted_data = f.decrypt(encrypted_data)
with open(os.path.splitext(filename)[0], 'wb') as file:
file.write(decrypted_data)
# 加密文件
encrypt_file('test.txt', key)
# 解密文件
decrypt_file('test.txt.encrypted', key)
```
在上面的代码中,我们使用了cryptography库中的Fernet类来进行加密和解密操作。首先,我们生成了一个密钥(key),然后定义了两个函数:encrypt_file和decrypt_file。encrypt_file函数用于加密文件,它接收一个文件名和密钥作为参数,读取文件内容并使用密钥进行加密,最后将加密后的数据写入一个新的后缀为.encrypted的文件中。decrypt_file函数用于解密文件,它接收一个加密后的文件名和密钥作为参数,读取加密后的文件内容并使用密钥进行解密,最后将解密后的数据写入一个新的文件中,文件名为去掉后缀.encrypted的原文件名。
在使用上述代码时,您只需要将要加密的文件放在脚本同一目录下,并将文件名传递给encrypt_file函数即可。加密后的文件将会生成在同一目录下,并自动添加.encrypted后缀。要解密该文件,只需将加密后的文件名传递给decrypt_file函数即可,解密后的文件会生成在同一目录下,并使用原文件名。