Python,替换密码

时间:2013-03-23 04:31:43

标签: python substitution encryption

我需要为数字0,1,2,3,...,9替换0,1,2,3,...,9中的每个数字替换密码。它可以表示为10位数字符串,指定如何替换0,1,2,3,...,9中的每个数字。例如,10位数字符串'3941068257'指定替换密码,其中数字0用数字3代替,1用9,2代替4,依此类推。要加密非负整数,请将其每个数字替换为加密密钥指定的数字。实现函数cipher(),其中包含一个10位数的字符串键和一个数字和一个数字字符串(即要加密的明文),并返回明文的加密。

>>>encrypt('3491068257', '132')
'914'
>>>encrypt('3491068257', '111')
'999'

感谢您的帮助:)

3 个答案:

答案 0 :(得分:1)

from string import maketrans

zero_through_nine = "".join(str(i) for i in range(10))
out_tab = "3491068257"
trantab = maketrans(zero_through_nine,out_tab )
print "111".translate(trantab)
希望你能深入了解它......

答案 1 :(得分:0)

我希望看到OP发布的尝试,但无论如何

def encrypt(key,s):
    return ''.join(key[int(c)] for c in s)

这使用字符串中的每个“键”,并使用它来查找相应的字符。

答案 2 :(得分:0)

在加密函数中,您可以使用第一个字符串参数创建查找映射。 然后遍历第二个参数字符串中的每个字符并使用此映射进行替换,并创建并返回一个新字符串