我目前正在做一个加密项目,我在我的程序中正确地实现了一个剖腹产功能,但我需要实现另一种加密方法。
说明:我们将使用一个名为 Pseudo-random offset 的修改版本。我们不需要预先分发小册子,只需要一个密码,而且这些密码更短,不需要写下来。然后使用该密码来播种 python 随机数生成器,如上所述。您应该从 Caesarian 代码开始,但不要在函数开头创建一个偏移量,而是为每个字符创建一个新偏移量。
以下是我的剖腹产代码。任何人都可以为代码中的一个字符提供一个示例,以便我可以了解正在发生的事情吗?我是 python 新手,还在学习。
def Caesarian(fin, fout, encrypt_or_decrypt_choice, alphabet):
# Determine the offset by generating a random number in the correct range.
# This will be the same random number, if the password sent to random.seed is the same.
offset = random.randrange(1,len(alphabet))
if encrypt_or_decrypt_choice=='d':
offset = -offset
print "Using the secret offset of", offset
# Read every line of the input file.
for line1 in fin:
# Alter each character of the line1, putting the result into line2.
line2 = ""
for c in line1:
if c in alphabet:
pos1 = alphabet.find(c)
pos2 = (pos1+offset)%len(alphabet)
line2 += alphabet[pos2]
# Write each resulting line2 to the output file.
fout.write(line2)