凯撒密码

# -*- coding: utf_8 -*-

def kaisa(a): #标准凯撒
    for j in range(1,26):
        z=''
        for i in range(0,len(a)):
            if ord(a[i]) in range (65,91):         #大写的情况下
                s=ord(a[i])+j                      #ascii编码并移位
                if s>90:                           #超过Z
                    s=s-26                         #从第一个字母重新开始
            elif ord(a[i]) in range (97,123):      #小写的情况下
                s=ord(a[i])+j                      #ascii编码并移位
                if s>122:                          #超过z
                    s=s-26                         #从第一个字母重新开始
            else:                                  #为标点符号的情况下
                s=ord(a[i])                        #保持不变
            s=chr(s)
            z=z+s
        print z

def rot(a,b,c): #纯位移,包括标点
    z=''
    for i in a:
        if c=='+':
            z+=chr(ord(i)+b)
        else:
            z+=chr(ord(i)-b)
    print z

a='gmbh{4d850d5c3c2756f67b91cbe8f046eebd} '
# kaisa(a)
for i in range(1,50):
    rot(a,i,'-')