Ticket #11567: quas.py

File quas.py, 2.0 KB (added by syam.in, 8 years ago)

Simple Python Code of order 5. Some problem with Decryption.

Line 
1import math
2#from Numeric import *
3Q=[[1,0,4,3,2],[3,2,1,0,4],[4,3,0,2,1],[0,1,2,4,3],[2,4,3,1,0]]
4msg1=[0,0,0,0,0]
5e_par=[[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]
6g=0
7
8def Q_par(Q,e_par):
9   for i in range(0,5):
10      for j in range(0,5):
11         e_par[i][Q[i][j]]=j
12
13def Q_e_a(a,Q,string,strlen,x):
14   if x<4:
15      string[0]=Q[a][string[0]]
16      for i in range(1,strlen):
17         string[i]=Q[string[i-1]][string[i]]
18   else:
19      string[0]=Q[a][string[0]]
20      print string[0]
21      g=0
22      msg1[g]=string[0]
23      g=1
24      for i in range(1,strlen):
25         string[i]=Q[string[i-1]][string[i]]
26         print string[i]
27         msg1[g]=string[i]
28         g=g+1
29
30def Q_e_d(a,e_par,string,strlen,y): 
31   print a
32   print string
33   if y>0:
34      dummy1=e_par[a][string[0]]
35      for i in range(0,strlen-1):
36         j=i
37         dummy2=string[j]
38         string[j]=dummy1
39         dummy1=e_par[dummy2][string[j+1]]
40   else:
41      print "The decrypted message:"
42      dummy1=e_par[a][string[0]]
43      print dummy1
44      i=0
45      for i in range(strlen-2):
46         dummy2=string[i]
47         j=i
48         string[j]=dummy1
49         dummy1=e_par[dummy2][string[j+1]]
50         print dummy1
51         
52
53def Q_encrypt(msg,msglen,passwd,passwd_len):
54   for l in range(msglen):
55      Q_e_a(passwd[l],Q,msg,msglen,l)
56
57def Q_decrypt(msg,msglen,passwd,passwdlen):
58   for i in range(5):
59      for j in range(5):
60         k=Q[i][j]     
61         e_par[i][k]=j
62   print e_par
63   passwd.reverse()
64   print passwd
65   l=0 
66   for l in range(5):
67      Q_e_d(passwd[l],e_par,msg,msglen,l)
68     
69def main():
70   msg=[]
71   print "Enter the message"
72   for i in range(5):
73        msg.append(int(raw_input()))
74
75   msglen=5
76   passwd=[]
77   print "Enter the password"
78   for i in range(5):
79        passwd.append(int(raw_input()))
80        #passwd[i]=p
81   passwdlen=5
82   Q_encrypt(msg,msglen,passwd,passwdlen)       
83   print "*******************"
84   print msg1
85   print "---------------"
86   Q_decrypt(msg1,g+1,passwd,passwdlen)
87
88
89if __name__ == '__main__':
90   main()