谐音替代密码Python

时间:2018-10-20 03:33:35

标签: python encryption cryptography

我正在尝试创建一个谐音替换密码,其中最常见的字母被多个其他符号替换,例如,如果我的明文是“ EEEEEEE”,E将被替换为几个不同的符号,在此代码中将是“%”和“-”

我现在拥有的是这个

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

我打算使密文看起来像这样的“%-%-%-”,其中字母E将被我选择的2个符号随机替换,但是最终发生的事情是我得到了“ %-%-%-%-%-%-%-%-“,它将用所有符号替换每个单独的E,因此提供了14个字符而不是原来的7个字符。

我也尝试过使用random模块,但是我最终有一半时间得到“ %%%%%%%%”或“ -------”,但从未在同一时间随机使用两个符号尝试。

那么我如何使我的代码能够用“%”和“-”随机替换每个单独的E?

1 个答案:

答案 0 :(得分:2)

我认为您需要遍历字符串以实现这种随机性。

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