如何在python中对变量的字母进行置乱

2024-09-30 20:32:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图让它,让你输入一个字,然后一个密码,然后它输出的字与字母拼凑起来,然后一个单独的程序解码它。我试过使用导入随机,但没用。我在网上找了大约一个小时,仍然没有找到任何东西。这是我目前掌握的密码。在

ss = raw_input ("Enter Plain Text Here:  ")
password = raw_input ("Enter the Password here:  ")
RealPassword = "Test Password"
if password == RealPassword:
    print "Password Accepted!"
    Var1 = (ss[1])
    Var2 = (ss[2])
    Var3 = (ss[3])
    Var4 = (ss[4])
    Var5 = (ss[5])
    Var6 = (ss[6])
    Var7 = (ss[7])
    Var8 = (ss[8])
    Var9 = (ss[9])
    Var10 = (ss[10])
    Var11 = (ss[11])
    Var12 = (ss[12])
    Var13 = (ss[13])
    Var14 = (ss[14])
    Var15 = (ss[15])
    Var16 = (ss[16])
    Var17 = (ss[17])
    print Var1 + Var2 + Var3 + Var4 + Var5 + Var6 + Var7 + Var8 + Var9 
else:
    print "Wrong"

Tags: 密码inputrawpasswordssprintentervar1
1条回答
网友
1楼 · 发布于 2024-09-30 20:32:19

这里有一个基本的答案。有一个编码函数,它将一个“键”(在我的代码中称为seed)传回给解码器读取。这利用了两个优点:python中的shuffle函数,以及python中的随机数生成器实际上是伪随机的,它们实际上具有可重复的行为。在

另外,感谢休在this post中的功劳,我在构思我的答案时用了很多。在

import random

def encoder(word):
    seed = random.randint(1,100)
    random.seed(seed)
    l = list(word)
    random.shuffle(l)
    scrambled_word = ''.join(l)
    return seed, scrambled_word

def decoder(seed, scrambled_word):
    random.seed(seed)
    order = list(range(len(scrambled_word)))
    random.shuffle(order)

    original_word = [0]*len(scrambled_word)
    for index,original_index in enumerate(order):
        original_word[original_index] = scrambled_word[index]
    print(''.join(original_word))


original_word = "hello"

seed, scrambled_word = encoder(original_word)
print(scrambled_word)
decoder(seed, scrambled_word)

如果有什么不合理的话,可以问任何问题。在

相关问题 更多 >