我正在创建一个程序,该程序使用我创建的方法将其信息保存为编码信息。
基本上,当我启动程序时,它会创建两个变量
random.shuffle()
将其随机化。这是“密钥”的“密钥”,我使用random.randint(1000000000,9999999999)
给它分配了一个随机数,这个数字称为“密钥”的名称。
所有键及其名称都存储在文件中。
在程序中,您将有机会编写类似名称的名称,该名称将使用我启动程序时生成的密钥进行加密,然后与密钥的名称一起存储在文件中。 / p>
(请注意,密钥始终具有不同的名称,加密的数据可能已使用同一密钥多次加密,然后存储在另一个文件中。)
我先从密钥文件中读取
{注意:密钥使用\ n模式存储,例如 file.write(f'{key} \ n {key_name} \ n')}
使用我的方法,长度总是可以被2整除,因此我使用了一个在for循环之前初始化的变量,并随循环增加它,同时我使用相同的变量从列表中读取(读取键的结果)文件)并为键分配名称,例如:
{4819572: 'varoabIfokdbKjs3918', 40101846: 'opqihduqv', 8291073: 'hqowirhwip', ...}
我的密钥长354个字符,所以这只是一个很小的例子。
这是上面描述的代码
sep = os.sep
Ot = platform.system()
file_name = os.path.basename(__file__)
path_to_file = __file__.replace(file_name, '')
with open(f'{path_to_file}database{sep}history.dll', 'r', encoding='utf-8') as file:
keys = file.readlines()
num = 0
archive = {}
for _ in range(int(len(keys)/2)):
key_name = str(keys[num+1]).replace('\n','')
key = str(keys[num]).replace('\n','')
archive[int(key_name)] = key
num =+ 2
num1 = 0
num2 = 0
此后,我使用key_name
来获取在解密功能中使用的密钥以及加密的文本。
问题在于,即使字典中只有16个键,也只有2个。我真的不知道如何解决这个问题或为什么要追加它。
答案 0 :(得分:1)
您已经写了“ num = + 2”,我想您要写“ num + = 2”