現在、暗号化プロジェクトに取り組んでおり、プログラムに帝王切開機能を正しく実装しましたが、別の暗号化方法を実装する必要があります。
手順: 疑似ランダム オフセットと呼ばれる修正版を使用します。小冊子を事前に配布する必要はありません。パスワードだけです。パスワードは短く、書き留める必要はありません。上記のように、パスワードは、python 乱数ジェネレーターをシードするために使用されます。Caesarian コードから開始する必要がありますが、関数の先頭に 1 つのオフセットを作成する代わりに、1 文字ごとに新しいオフセットを作成します。
以下は、帝王切開のための私のコードです。何が起こっているのかを追うことができるように、コード内のおそらく1文字の例を誰かが提供できますか? 私は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)