Гомофонический заменитель шифра Python - PullRequest
0 голосов
/ 20 октября 2018

Я пытаюсь создать гомофонический заменительный шифр, в котором наиболее распространенные буквы заменяются несколькими другими символами. Например, если бы мой открытый текст был "EEEEEEE", то E был бы заменен несколькими различными символами, которые в этом кодебудет "%" и "-"

Теперь у меня есть это

def encryption():
    plaintext = "EEEEEEE"
    plaintext = plaintext.replace("E", "%" "-")
    print(plaintext)
encryption()

Я собираюсь, чтобы зашифрованный текст выглядел примерно так "% -% -% -", где буква E будет случайным образом заменена двумя символами, которые я выбрал, но в конечном итоге я получаю"% -% -% -% -% -% -% - ", который заменяет каждый отдельный E всемисимволы, следовательно, дают 14 символов вместо оригинальных 7.

Я также пытался использовать случайный модуль, но в итоге я получил либо "%%%%%%%", либо "------ «половину времени, но никогда не используйте оба символа случайно в одной и той же попытке.

Так как же я смогу сделать так, чтобы мой код мог произвольно заменять каждый отдельный E на«% »и« - »

1 Ответ

0 голосов
/ 20 октября 2018

Я думаю, вам нужно перебрать строку, чтобы достичь такой случайности.

import random
def encryption(plaintext):
  ret = ""
  for i in range(len(plaintext)):
    ret += ("%" if random.random() > 0.5 and (plaintext[i] in ["a", "e", "i", "o", "u"]) else "-")
  return ret
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...