在python中使用密钥加密消息

时间:2016-02-25 14:35:47

标签: python-3.x encryption secret-key

我需要使用密钥加密邮件并返回邮件。我尝试了这个,我得到了正确的输出。

def my_encryption(some_string):
    character_set= "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 "
    secret_key="    Dd18Abz2EqNPW hYTOjBvtVlpXaH6msFUICg4o0KZwJeryQx3f9kSinRu5L7cGM"
    m=some_string
    k=m.translate({ord(x): y for (x, y) in zip(character_set,secret_key )})
    return m

print(my_encryption("Lets meet at the usual place at 9 am"))

我得到的输出是

oABjMWAABMDBMB2AMvjvDPMYPD1AMDBMGMDWB

这是正确的。我想知道,有没有其他方法可以使用翻译?我很想知道其他方法。我很高兴知道。谢谢。

3 个答案:

答案 0 :(得分:1)

我在制作不太纯文本时使用的简单解决方案是base64模块。这绝不是加密。只是让文字更难阅读:

>>> import base64
>>> base64.b64encode(b'This is a secret.')
b'VGhpcyBpcyBhIHNlY3JldC4='
>>> base64.b64decode(b'VGhpcyBpcyBhIHNlY3JldC4=').decode('utf-8')
'This is a secret.'

答案 1 :(得分:1)

你可以使用简单的字典

def my_encryption(some_string):
    character_set= "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 "
    secret_key=    "Dd18Abz2EqNPW hYTOjBvtVlpXaH6msFUICg4o0KZwJeryQx3f9kSinRu5L7cGM"
    table = {x: y for (x, y) in zip(character_set,secret_key )}
    return "".join( map(lambda x:table.get(x,x),some_string) )

get方法可以接收2个参数,第一个是搜索的键,第二个是在键不存在时返回的值,在这种情况下将其指定为x保持不变

这里是一个测试

>>> my_encryption("Lets meet at the usual place at 9 am")
'oABjMWAABMDBMB2AMvjvDPMYPD1AMDBMGMDW'
>>> 

当我想要做这个简单的替换密码时,这通常是我想到的第一件事。

,反向就像反转键值

一样简单
def my_decription(some_string):
    character_set= "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 "
    secret_key=    "Dd18Abz2EqNPW hYTOjBvtVlpXaH6msFUICg4o0KZwJeryQx3f9kSinRu5L7cGM"
    table = {x: y for (x, y) in zip(character_set,secret_key )}
    return "".join( map(lambda x:table.get(x,x),some_string) )

>>> my_decription('oABjMWAABMDBMB2AMvjvDPMYPD1AMDBMGMDW')
'Lets meet at the usual place at 9 am'
>>> 

答案 2 :(得分:0)

def my_encryption(some_string):
     output_string=""
     index=0
     character_set = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 "
     secret_key    = "Dd18Abz2EqNPW hYTOjBvtVlpXaH6msFUICg4o0KZwJeryQx3f9kSinRu5L7cGM"
     for character in some_string:
        index=character_set.find(character)
        output_string=output_string+secret_key[index]
      return output_string