#!/usr/bin/envpython#coding=utf-8defEncrypt(n,col,M):row=len(M)/niflen(M)%n>0:row+=1arr=[[""forxinrange(0,n)]foryinrange(0,row)]x=0foriinrange(0,row):forjinrange(0,n):ifx...
#! /usr/bin/env python
#coding=utf-8
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
arr[i][j]=M[x]
print M[x],
x+=1
print "\r\n"
for i in range(0,row):
for j in (0,n):
m=int(col[j])-1
print arr[i][m],
print "\r\n"
print u"1.进行栅栏加密\r\n 2.进行栅栏解密\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)
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)
print u"密文必须是分组数目的3倍".encode("gb2312")
C=raw_input()
Decrypt(n,col,C)
展开