我需要使用 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
这是正确的。我想知道,除了使用翻译之外,还有其他方法可以做到这一点吗?我很想知道替代方法。我会很高兴知道。谢谢。
最佳答案
你可以使用简单的字典
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'
>>>
关于python-3.x - 在python中使用 key 加密消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35630242/