我需要使用密钥加密邮件并返回邮件。我尝试了这个,我得到了正确的输出。
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
这是正确的。我想知道,有没有其他方法可以使用翻译?我很想知道其他方法。我很高兴知道。谢谢。
答案 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