用python的密钥和字符串进行简单加密

时间:2013-03-27 01:59:19

标签: python

这是我的代码需要做的一个例子:

encrypt('7521068493', '123')
# returns '521'

第一个字符串是替换0-9的键,例如70512为{{ 1}},21,依此类推。

第二个字符串是需要加密的字符串。

这是我的代码:

3

我无法弄清楚

2 个答案:

答案 0 :(得分:1)

def encrypt(key, msg):
    cypher = {x: y for x, y in zip('0123456789', key)}
    encrypted = []
    for c in msg:
        encrypted.append(cypher[c])
    return ''.join(encrypted)

答案 1 :(得分:0)

我喜欢@Peter的解决方案。您可以通过不在每个循环中附加来创建encrypted列表和时间来节省内存。

def encrypt(key, msg):
    cypher = {x: y for x, y in zip('0123456789', key)}
    return ''.join(cypher[c] for c in msg) 

将列表或生成器作为参数的事物可以传递所谓的'生成器理解'作为它们的参数,而不是列表本身。这节省了必须单独构建该列表,并且许多人同意它更容易阅读。这仅在您的msg很长时才会有效。