python-3.x - 在python中使用 key 加密消息

标签 python-3.x encryption secret-key

我需要使用 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/

相关文章:

python - 使用 libpcap 的 TLS 解密

java - 如何使用密码的哈希值进行加密

iphone - 苹果二进制文件有多安全( key 安全)

encryption - 如何仅加密 .env 文件的值?

python - 分配到项目大小 > 1 的 Python 3.x 缓冲区

python - 比较二维 numpy 数组的元素

python Reportlab 段落中同一行中的两个项目

python-3.x - 将 HTTP header 字典字符串加载到 JSON 中并解析它

ssl - TLS 1.2 change-cipher-spec 的 "decrypt error",但正确读取 MAC

kubernetes - GAE 从无人机管道激活服务帐户(k8s 上的无人机): No key could be detected