ランダム置換暗号を書いています。通常の文章の作成に使用するとうまくいきます。しかし、私が 'abbcccddddeeeee'をテストしようとすると、私は 'G H H I I J J J K K K K K K'のようなものを得るでしょう。サイクル中の各文字の「キー」または「変数」が変更されるようにコードを変更することはできますが、同じ文字は他の文字に対応していません。ランダム置換暗号(Python)
import random
intext = raw_input("Enter a message to encrypt: ")
intext = intext.upper()
key = random.randint(0,27)
vari = random.randint(0,27)
def randomsub(intext):
outtext = []
intext = intext.upper()
for c in intext:
num = ord(c)
if num >= ord('A') and num <= ord('Z'):
num = num - ord('A')
num = num + (key + vari) % 26
num += ord('A')
outtext.append(chr(num))
return ' '.join(outtext)
print randomsub(intext)
あなたはその結果に何が間違っていますか? –
あなたのコードが今のところ、あるいはあなたのコードを望むように、復号化がどのように動作するはずですか? – user2357112
mmm、[enigma machine](https://en.wikipedia.org/wiki/Enigma_machine)のように? – Copperfield