a. 加密
1.进行栅栏加密
2.进行栅栏解密
请选择: 1
请输入分组数目 2
请输入列排编号 21
请输明文 abcdefgh
b a
d c
f e
h g
b. 解密
1.进行栅栏加密
2.进行栅栏解密
请选择: 2
请输入分组数目 2
请输入列排编号 21
请输密文 b a d c f e h g
abcdefgh
修改后的代码:
def Encrypt(n,col,M):
row=len(M)/n
if len(M)%n>0:
row+=1
arr=[[""for x in range(0,n)] for y in range(0,row)]
x=0
for i in range(0,row):
for j in range(0,n):
if x<len(M):
arr[i][j]=M[x]
#print M[x],
x+=1
#print "\r\n"
for i in range(0,row):
for j in range(0,n):
m=int(col[j])-1
print arr[i][m],
print "\r\n"
def Decrypt(n, col, C):
C="".join(C.split())
row=len(C)/n
if len(C)%n>0:
row+=1
arr=[[""for x in range(0,n)] for y in range(0,row)]
x=0
for i in range(0,row):
for j in range(0,n):
if x<len(C):
arr[i][j]=C[x]
#print C[x],
x+=1
#print "\r\n"
M=""
for i in range(0,row):
for j in range(0,n):
m=int(col[j])-1
#print arr[i][m],
M+=arr[i][m]
#print "\r\n"
print M
print u"1.进行栅栏加密\r\n2.进行栅栏解密\r\n请选择:".encode("gb2312"),
sel=raw_input()
if int(sel)==1:
print u"请输入分组数目".encode("gb2312"),
n=int(raw_input())
print u"请输入列排编号".encode("gb2312"),
col=raw_input()
print u"请输明文".encode("gb2312"),
M=raw_input()
while len(M)<n*3:
print u"明文必须是分组数目的3倍".encode("gb2312")
M=raw_input()
Encrypt(n,col,M)
else :
print u"请输入分组数目".encode("gb2312"),
n=int(raw_input())
print u"请输入列排编号".encode("gb2312"),
col=raw_input()
print u"请输密文".encode("gb2312"),
C=raw_input()
while len(C)<n*3:
print u"密文必须是分组数目的3倍".encode("gb2312")
C=raw_input()
Decrypt(n,col,C)
Python自身强大的优势决定其不可限量的发展前景。而且从最新Python招聘岗位需求来看,Python工程师的岗位需求量是非常大的Python作为一种通用语言,几乎可以用在任何领域和场合,角色几乎是无限的。它是一种很灵活的语言,能帮你轻松完成编程工作。强大的类库支持,使编写文件处理、正则表达式、网络连接等程序变得相当容易。其次再说python人才的需求,过去五年里,市场对 Python 开发者的需求呈爆发性增长趋势。Python+人工智能人才缺口高达80万,供不应求。首先从国家的层面上来说,国务院发布《新一代人工智能发展规划》,人工智能正式纳入国家发展战略,在教育上,教育部已将人工智能、物联网、大数据处理划入高中新课标。因为Python在大数据和人工智能领域的爆发性发展, 导致Python方向岗位的薪水在水涨船高,从数据分析来看,月薪在20K-50K不等。千锋教育拥有多年Python培训服务经验,采用全程面授高品质、高体验培养模式,拥有国内一体化教学管理及学员服务,助力更多学员实现高薪梦想。