加密Python - 加密字符串

时间:2015-02-27 05:22:45

标签: python encryption caesar-cipher

使用此程序取出空格,标点符号并使字母小写......

def pre_process(s):
    s= s.replace("'","")
    s= s.replace('.','')
    s= s.lower()
    s= s.replace(" ","")
    return s

如何加密邮件,使每个字母的数量等于字母表中相应的字母? ex)'m'移位5变成'r'但'w'移位5变成'b'?

2 个答案:

答案 0 :(得分:1)

你必须做一些ordchr技巧来做你想做的事。基本上,这两个函数返回字母的整数表示,并分别输出整数表示的相应字母。

def pre_process(s):
    s= s.replace("'","")
    s= s.replace('.','')
    s= s.lower()
    s= s.replace(" ","")

    mystring = ""
    for letter in s:
        shift = 5
        r = ord(letter)+shift
        if (r > ord('z')):
            r -= 26
        mystring += (chr(r))
    return mystring

答案 1 :(得分:0)

这可能对您有所帮助...只需更改加密函数中移位器的值即可获得相应的移位

def shift(char,shift_by):
    val=ord(char) #gives ascii value of charecter
    val+=shift_by
    if(val>122):
        val=97+(val-122-1)
    return(chr(val))

def encrypt_string(str):
    shifter=2 #change to value of shifter here
    encrypted_string=""
    for i in str :
        if( (ord(i)>=97) and (ord(i)<=122) ):
            i=shift(i,shifter)
        encrypted_string+=i
    return(encrypted_string)