吉吉于

凯撒加密解密算法(python)

无聊的时候折腾一下虾米正版歌曲破解下载,遇到了凯撒加密算法,写一写。

凯撒加密(Caesar cipher)是一种简单的消息编码方式:它根据字母表将消息中的每个字母移动常量位k。举个例子如果k等于3,则在编码后的消息中,每个字母都会向前移动3位:a会被替换为d;b会被替换成e;依此类推。字母表末尾将回卷到字母表开头。于是,w会被替换为z,x会被替换为a。

# Casare Algorithm

def convert(c, key, start = 'a', n = 26):
    a = ord(start)
    offset = ((ord(c) - a + key)%n)
    return chr(a + offset)
def caesarEncode(s, key):
    o = ""
    for c in s:
        if c.islower():
            o+= convert(c, key, 'a')
        elif c.isupper():
            o+= convert(c, key, 'A')
        else:
            o+= c
    return o
def caesarDecode(s, key):
    return caesarEncode(s, -key)
if __name__ == '__main__':
    key = 3
    s = 'This is Casare Algorithm.'
    e = caesarEncode(s, key)
    d = caesarDecode(e, key)
    print e
    print d

运行结果:

casare

转载请注明:于哲的博客 » 凯撒加密解密算法(python)