Python 3.x python替换字符串中的多个字符

Python 3.x python替换字符串中的多个字符,python-3.x,Python 3.x,我想用python加密一个字符串。字符中的每个字符都映射到密钥中的其他字符。例如,'a'映射到'D','b'映射到'D','c'映射到'1'等等,如下所示: char = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" secretkey="Dd18Abz2EqNPWhYTOjBvtVlpXaH6msFUICg4o0KZwJeryQx3f9kSinRu5L7cGM" 如果我选择字符串“Lets meet a

我想用python加密一个字符串。字符中的每个字符都映射到密钥中的其他字符。例如,
'a'
映射到
'D'
,'b'映射到
'D'
'c'
映射到
'1'
等等,如下所示:

char    = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
secretkey="Dd18Abz2EqNPWhYTOjBvtVlpXaH6msFUICg4o0KZwJeryQx3f9kSinRu5L7cGM"

如果我选择字符串“Lets meet at the惯常的地点是上午9点”,那么输出必须是“OABJMWAABMDBMB2AMVJVDPYPD1AMDBMGMDW”

好的,我在这里做两个假设

  • 我认为您期望的输出是错误的,例如
    L
    应该映射到
    0
    ,而不是映射到
    o
    ,对吗
  • 我假设您希望忽略空白,因为它不包括在映射中
  • 那么代码就是:

    to_encrypt = "Lets meet at the usual place at 9 am"
    char = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
    secretkey = "Dd18Abz2EqNPWhYTOjBvtVlpXaH6msFUICg4o0KZwJeryQx3f9kSinRu5L7cGM"
    encrypted = ""
    
    for c in to_encrypt:
        if c in char:
            encrypted += secretkey[char.index(c)]
    
    print(encrypted)
    
    0AvBWAAvDvv2AtBtDPTPD1ADvMDW
    
    产出将是:

    to_encrypt = "Lets meet at the usual place at 9 am"
    char = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
    secretkey = "Dd18Abz2EqNPWhYTOjBvtVlpXaH6msFUICg4o0KZwJeryQx3f9kSinRu5L7cGM"
    encrypted = ""
    
    for c in to_encrypt:
        if c in char:
            encrypted += secretkey[char.index(c)]
    
    print(encrypted)
    
    0AvBWAAvDvv2AtBtDPTPD1ADvMDW
    

    用于替换字符串中的多个字符

    您可以使用和:

    或者,如果您希望仅保留
    字符中的内容:

    >>> ''.join(c for c in s if c in char).translate(trans)
    '0AvBWAAvDvv2AtBtDPTPD1ADvMDW'
    
    至于加密


    我建议使用专用的库,例如。

    您能发布您到目前为止所做的工作吗?我很好奇这将提供多少安全性?在安全方面,他们总是建议使用第三方加密选项,而不是试图重新发明轮子。在做这件事之前你研究过加密吗?非常感谢!在你的帮助下,我解决了这个问题