【问题标题】:Replace a text(of any length) with a key(shuffled characters) provided using Python(Permutation encryption)用 Python 提供的密钥(随机字符)替换文本(任意长度)(排列加密)
【发布时间】:2020-02-23 10:21:40
【问题描述】:

我应该在提供文本和密钥的情况下进行排列加密。 让我们说

text = "abbdcada"

key = "dcab"

所以我必须映射这样的东西 (a,b,c,d) -> (d,c,a,b) 所以上述输入的输出应该是

output = dccbadbd

如果我有相同长度的文本和密钥,我可以轻松地做到这一点,但我无法为文本长度超过密钥长度制定逻辑。

谁能帮帮我...

【问题讨论】:

    标签: python-3.x permutation public-key-encryption


    【解决方案1】:

    您可以使用字典进行映射。

    def encrypt(text):
        mapping = {'a': 'd', 'b': 'c', 'c': 'a', 'd': 'b'}
        return ''.join(mapping[i] for i in text)
    
    
    >>> encrypt("abbdcada")
    'dccbadbd'
    

    【讨论】:

    • 这很好.. 如果我有长键怎么办?在这种情况下,我只有 4 个字符,但我可以有 50 多个字符。那我该怎么办?
    • 字典可以有任意多的键值对。
    • 最后一件事。如果我有一个 0-255 随机排列的数字的键,我必须用一系列数字替换它们。我无法实现上述解决方案,有什么帮助吗?
    • 我不明白。像这样的东西? (1, 2, 3, 4) -> (3, 2, 4, 1)
    • 创建列表x = list(range(255))。随机播放列表random.shuffle(x)。创建映射mapping = {x[i]: i for i in range(255)}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 2012-09-02
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多