随机生成密钥存文件v2 描述 读取附件seed.txt中作为随机种子来随机生成n个10位密钥,由大、小写字母和数字组成,n<=10,由用户输入 ,每行一个密钥输出在屏幕上,同时按每行一个密钥的格式写入当前路径下key.txt中。
时间: 2024-02-13 18:03:04 浏览: 29
好的,我理解了您的要求。这是一个随机生成密钥并存入文件中的程序。以下是Python代码实现:
```python
import random
# 读取随机种子
with open('seed.txt', 'r') as f:
seed = f.read()
random.seed(seed)
# 生成密钥
n = int(input("请输入要生成的密钥数量:"))
keys = []
for i in range(n):
key = ''.join(random.choices('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', k=10))
keys.append(key)
print(key)
# 写入文件
with open('key.txt', 'w') as f:
for key in keys:
f.write(key + '\n')
```
首先,我们读取了文件 `seed.txt` 中的随机种子,并将其作为随机数生成器的种子,以保证生成的密钥具有随机性。
然后,根据用户输入的数量 `n`,生成 `n` 个随机密钥,每个密钥由大小写字母和数字组成,长度为 10。
接着,将生成的密钥输出到屏幕上,并将其存储在列表 `keys` 中。
最后,将 `keys` 中的每个密钥按照每行一个密钥的格式写入文件 `key.txt` 中。
注意,文件 `seed.txt` 和程序文件必须在同一目录下。
相关问题
用 OpenSSL 创建长度为 10 位的随机对称密钥,密钥使用 base64 编码,并存放到文件 En crypt.key 中。
要使用 OpenSSL 创建一个长度为 10 位的随机对称密钥并将其存储到文件 `encrypt.key` 中,可以按照以下步骤进行操作:
1. 打开终端或命令提示符,并导航到您想要存储密钥的目录。
2. 运行以下命令以生成随机对称密钥:
```
openssl rand -base64 15 > encrypt.key
```
这里的 `15` 是指生成的随机字节长度,由于 base64 编码会增加约 1/3 的长度,因此需要比 10 位更长的长度。生成的密钥将被存储到 `encrypt.key` 文件中。
3. 您可以使用文本编辑器打开 `encrypt.key` 文件来查看生成的密钥。请注意,随机生成的密钥是一串随机字符,具有较高的熵,确保其安全性。
请记住,对称密钥的安全性取决于其长度和随机性。对于真正安全的加密,推荐使用更长的密钥长度。此例中使用的 10 位长度仅作为示例。
python读取json 并用aes加密随机生成密钥
好的,我可以为您解答这个问题。
首先,您可以使用Python中的json模块来读取json文件,例如:
```python
import json
# 读取json文件
with open('data.json') as f:
data = json.load(f)
# 打印读取的数据
print(data)
```
接下来,您可以使用Python中的cryptography模块来生成随机密钥和进行AES加密。例如:
```python
from cryptography.fernet import Fernet
import json
# 读取json文件
with open('data.json') as f:
data = json.load(f)
# 生成随机密钥
key = Fernet.generate_key()
# 加密json数据
cipher = Fernet(key)
encrypted_data = cipher.encrypt(json.dumps(data).encode())
# 打印加密后的数据和密钥
print('Encrypted data:', encrypted_data)
print('Key:', key)
```
需要注意的是,为了确保数据安全,您应该妥善保管生成的密钥,并将其用于解密数据时。