用Python 将一文本文件加密后输出
时间: 2024-05-03 10:17:34 浏览: 123
可以使用加密模块`cryptography`来实现文本文件的加密。下面是一个简单的示例代码:
```python
from cryptography.fernet import Fernet
# 生成密钥
key = Fernet.generate_key()
# 创建Fernet对象
fernet = Fernet(key)
# 读取明文文件
with open('plain.txt', 'rb') as f:
plain_text = f.read()
# 加密
cipher_text = fernet.encrypt(plain_text)
# 写入密文文件
with open('cipher.txt', 'wb') as f:
f.write(cipher_text)
# 打印密钥
print(f'加密密钥:{key.decode()}')
```
在上面的示例代码中,首先使用`Fernet.generate_key()`方法生成一个随机的密钥。然后使用`Fernet`类创建一个加密对象。接着读取明文文件的内容,使用`fernet.encrypt()`方法进行加密,得到密文。最后将密文写入到密文文件中,并打印出加密密钥。
需要注意的是,加密密钥需要妥善保存,否则无法解密密文文件。
相关问题
python 将一文本文件加密后输出,规则如下:大写英文字符A变换为C,B变换为D,..,Y变换为A,Z变换为B,小写英文字符规则同上,其他字符不变。
好的,这个问题可以通过 Python 编程来实现。以下是一个简单的代码示例:
```python
# 定义加密函数
def encrypt(text):
result = ''
for char in text:
if char.isupper():
# 大写字母加密
result += chr((ord(char) - 65 + 2) % 26 + 65)
elif char.islower():
# 小写字母加密
result += chr((ord(char) - 97 + 2) % 26 + 97)
else:
# 其他字符不变
result += char
return result
# 读取文件并加密
with open('input.txt', 'r') as f:
text = f.read()
encrypted_text = encrypt(text)
# 将加密后的内容写入文件
with open('output.txt', 'w') as f:
f.write(encrypted_text)
```
这段代码首先定义了一个 `encrypt` 函数,用于加密文本。函数遍历文本中的每个字符,如果是大写字母,则将其加密为对应的字母(例如 A 加密为 C),如果是小写字母,则将其加密为对应的字母(例如 a 加密为 c),否则将其保留不变。然后,代码读取文件 `input.txt` 中的内容,并使用 `encrypt` 函数进行加密。最后,将加密后的内容写入文件 `output.txt` 中。
需要注意的是,这个加密算法是一个简单的替换算法,并不是非常安全。如果需要更高级的加密算法,建议使用专业的加密库。
python 将一文本文件加密后输出,规则如下:大写英文字符A变换为C,B变换为D,⋯⋯,Y变换为A,Z 变换为B,小写英文字符规则同上,其他字符不变。
可以使用 Python 的文件读写功能以及字符串的替换功能来实现文本文件加密。以下是一个简单的示例代码:
```python
# 打开原始文件和加密后的文件
with open('input.txt', 'r') as f_input, open('output.txt', 'w') as f_output:
# 读取原始文件内容
content = f_input.read()
# 将大写字母 A-Z 替换为 C-ZA-B,小写字母 a-z 替换为 c-za-b
content = content.translate(str.maketrans('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'CDEFGHIJKLMNOPQRSTUVWXYZABcdefghijklmnopqrstuvwxyzab'))
# 将加密后的内容写入加密文件
f_output.write(content)
```
在这里,我们使用了字符串的 `translate()` 方法来实现字符替换。`str.maketrans()` 方法用于创建映射表,将原始字符和目标字符对应起来。然后,我们将映射表作为参数传递给 `translate()` 方法,用于替换文本中的字符。最后,我们将加密后的内容写入输出文件中。
请注意,这个加密算法并不安全,因为它实际上只是将字母表中每个字母向右移动了两个位置。更高级的加密算法需要更复杂的规则和加密过程。
阅读全文