Python中对加密学号进行解密

下面代码用于对学号加密。
s=int(input('请输入学号: '))
s=str(s<<3)
s1=s[1::2]
s2=s[::2]
t1=s1+s2
t2=t1[::-1]
print('学号加密后:'+t2)
(1)编写程序u1Decode.py完成对加密学号的解密。
(2)程序执行效果:
输入加密后的学号:233111476
解密后的学号为:20216789

def dec(s):
    s = s[::-1]
    i = int(len(s)/2)
    s1 = s[:i]
    s2 = s[i:]
    res = ''
    for i in range(len(s1)):
        res+=s2[i]+s1[i]
    res+=s2[i+1]
    return int(res)>>3
n = input()
print(dec(n))
# 输入加密后的学号:233111476
# 解密后的学号为:20216789
s=int(input('输入加密后的学号:'))
#s = 233111476
t1 = str(s)[::-1]
s1 = s2 = ''
#print(t1)
s1 = t1[:int(len(t1)/2)]
s2 = t1[int(len(t1)/2):]
#print(s1,s2)
news =''
for x,y in zip(s1,s2):
    news += y
    news += x
if len(s1) > len(s2):
    news += s1[-1]
elif len(s1) < len(s2):
    news += s2[-1]
#print(news)
print('解密后的学号为:{}'.format(int(news)>> 3))


【有帮助请采纳】

s = input()#输入
s = s[::-1]#倒序
s1 = s[:len(s)//2]#切片
s2 = s[len(s)//2:]#切片
s = ''.join([s2[i]+s1[i] for i in range(len(s)//2)])#合并
s += s1[-1] if len(s1)>len(s2) else s2[-1]#处理特殊
s = int(s)>>3#移位
print('解密后的学号:'+str(s))#输出

【有帮助请采纳】