Guest User

Untitled

a guest
Apr 5th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.43 KB | None | 0 0
  1. k='Thats my Kung Fu'
  2. import pymysql
  3. conn=pymysql.connect(host='localhost',user='root',password='123456789',db='cyber')
  4. cur=conn.cursor(pymysql.cursors.DictCursor)
  5. cur.execute("select top 1 from enc_data")
  6.  
  7. def split(s, n):
  8. new_list = []
  9. for i in range(0, len(s), n):
  10. new_list.append(s[i:i+n])
  11. return new_list
  12.  
  13. global k2
  14. k2=[0 for i in range(16)]
  15. k2 = cur.fetchone()
  16.  
  17. def decrypt(a):
  18. def isbox(a,b):
  19. if(a=='0'):
  20. return {
  21. '0': '52',
  22. '1': '09',
  23. '2': '6a',
  24. '3': 'd5',
  25. '4': '30',
  26. '5': '36',
  27. '6': 'a5',
  28. '7': '38',
  29. '8': 'bf',
  30. '9': '40',
  31. 'a': 'a3',
  32. 'b': '9e',
  33. 'c': '81',
  34. 'd': 'f3',
  35. 'e': 'd7',
  36. 'f': 'fb',
  37. }[b]
  38. if(a=='1'):
  39. return {
  40. '0': '7c',
  41. '1': 'e3',
  42. '2': '39',
  43. '3': '82',
  44. '4': '9b',
  45. '5': '2f',
  46. '6': 'ff',
  47. '7': '87',
  48. '8': '34',
  49. '9': '8e',
  50. 'a': '43',
  51. 'b': '44',
  52. 'c': 'c4',
  53. 'd': 'de',
  54. 'e': 'e9',
  55. 'f': 'cb',
  56. }[b]
  57. if(a=='2'):
  58. return {
  59. '0': '54',
  60. '1': '7b',
  61. '2': '94',
  62. '3': '32',
  63. '4': 'a6',
  64. '5': 'c2',
  65. '6': '23',
  66. '7': '3d',
  67. '8': 'ee',
  68. '9': '4c',
  69. 'a': '95',
  70. 'b': '0b',
  71. 'c': '42',
  72. 'd': 'fa',
  73. 'e': 'c3',
  74. 'f': '4e',
  75. }[b]
  76. if(a=='3'):
  77. return {
  78. '0': '08',
  79. '1': '2e',
  80. '2': 'a1',
  81. '3': '66',
  82. '4': '28',
  83. '5': 'd9',
  84. '6': '24',
  85. '7': 'b2',
  86. '8': '76',
  87. '9': '5b',
  88. 'a': 'a2',
  89. 'b': '49',
  90. 'c': '6d',
  91. 'd': '8b',
  92. 'e': 'd1',
  93. 'f': '25',
  94. }[b]
  95. if(a=='4'):
  96. return {
  97. '0': '72',
  98. '1': 'f8',
  99. '2': 'f6',
  100. '3': '64',
  101. '4': '86',
  102. '5': '68',
  103. '6': '98',
  104. '7': '16',
  105. '8': 'd4',
  106. '9': 'a4',
  107. 'a': '5c',
  108. 'b': 'cc',
  109. 'c': '5d',
  110. 'd': '65',
  111. 'e': 'b6',
  112. 'f': '92',
  113. }[b]
  114. if(a=='5'):
  115. return {
  116. '0': '6c',
  117. '1': '70',
  118. '2': '48',
  119. '3': '50',
  120. '4': 'fd',
  121. '5': 'ed',
  122. '6': 'b9',
  123. '7': 'da',
  124. '8': '5e',
  125. '9': '15',
  126. 'a': '46',
  127. 'b': '57',
  128. 'c': 'a7',
  129. 'd': '8d',
  130. 'e': '9d',
  131. 'f': '84',
  132. }[b]
  133. if(a=='6'):
  134. return {
  135. '0': '90',
  136. '1': 'd8',
  137. '2': 'ab',
  138. '3': '00',
  139. '4': '8c',
  140. '5': 'bc',
  141. '6': 'd3',
  142. '7': '0a',
  143. '8': 'f7',
  144. '9': 'e4',
  145. 'a': '58',
  146. 'b': '05',
  147. 'c': 'b8',
  148. 'd': 'b3',
  149. 'e': '45',
  150. 'f': '06',
  151. }[b]
  152. if(a=='7'):
  153. return {
  154. '0': 'd0',
  155. '1': '2c',
  156. '2': '1e',
  157. '3': '8f',
  158. '4': 'ca',
  159. '5': '3f',
  160. '6': '0f',
  161. '7': '02',
  162. '8': 'c1',
  163. '9': 'af',
  164. 'a': 'bd',
  165. 'b': '03',
  166. 'c': '01',
  167. 'd': '13',
  168. 'e': '8a',
  169. 'f': '6b',
  170. }[b]
  171. if(a=='8'):
  172. return {
  173. '0': '3a',
  174. '1': '91',
  175. '2': '11',
  176. '3': '41',
  177. '4': '4f',
  178. '5': '67',
  179. '6': 'dc',
  180. '7': 'ea',
  181. '8': '97',
  182. '9': 'f2',
  183. 'a': 'cf',
  184. 'b': 'ce',
  185. 'c': 'f0',
  186. 'd': 'b4',
  187. 'e': 'e6',
  188. 'f': '73',
  189. }[b]
  190. if(a=='9'):
  191. return {
  192. '0': '96',
  193. '1': 'ac',
  194. '2': '74',
  195. '3': '22',
  196. '4': 'e7',
  197. '5': 'ad',
  198. '6': '35',
  199. '7': '85',
  200. '8': 'e2',
  201. '9': 'f9',
  202. 'a': '37',
  203. 'b': 'e8',
  204. 'c': '1c',
  205. 'd': '75',
  206. 'e': 'df',
  207. 'f': '6e',
  208. }[b]
  209. if(a=='a'):
  210. return {
  211. '0': '47',
  212. '1': 'f1',
  213. '2': '1a',
  214. '3': '71',
  215. '4': '1d',
  216. '5': '29',
  217. '6': 'c5',
  218. '7': '89',
  219. '8': '6f',
  220. '9': 'b7',
  221. 'a': '62',
  222. 'b': '0e',
  223. 'c': 'aa',
  224. 'd': '18',
  225. 'e': 'be',
  226. 'f': '1b',
  227. }[b]
  228. if(a=='b'):
  229. return {
  230. '0': 'fc',
  231. '1': '56',
  232. '2': '3e',
  233. '3': '4b',
  234. '4': 'c6',
  235. '5': 'd2',
  236. '6': '79',
  237. '7': '20',
  238. '8': '9a',
  239. '9': 'db',
  240. 'a': 'c0',
  241. 'b': 'fe',
  242. 'c': '78',
  243. 'd': 'cd',
  244. 'e': '5a',
  245. 'f': 'f4',
  246. }[b]
  247. if(a=='c'):
  248. return {
  249. '0': '1f',
  250. '1': 'dd',
  251. '2': 'a8',
  252. '3': '33',
  253. '4': '88',
  254. '5': '07',
  255. '6': 'c7',
  256. '7': '31',
  257. '8': 'b1',
  258. '9': '12',
  259. 'a': '10',
  260. 'b': '59',
  261. 'c': '27',
  262. 'd': '80',
  263. 'e': 'ec',
  264. 'f': '5f',
  265. }[b]
  266. if(a=='d'):
  267. return {
  268. '0': '60',
  269. '1': '51',
  270. '2': '7f',
  271. '3': 'a9',
  272. '4': '19',
  273. '5': 'b5',
  274. '6': '4a',
  275. '7': '0d',
  276. '8': '2d',
  277. '9': 'e5',
  278. 'a': '7a',
  279. 'b': '9f',
  280. 'c': '93',
  281. 'd': 'c9',
  282. 'e': '9c',
  283. 'f': 'ef',
  284. }[b]
  285. if(a=='e'):
  286. return {
  287. '0': 'a0',
  288. '1': 'e0',
  289. '2': '3b',
  290. '3': '4d',
  291. '4': 'ae',
  292. '5': '2a',
  293. '6': 'f5',
  294. '7': 'b0',
  295. '8': 'c8',
  296. '9': 'eb',
  297. 'a': 'bb',
  298. 'b': '3c',
  299. 'c': '83',
  300. 'd': '53',
  301. 'e': '99',
  302. 'f': '61',
  303. }[b]
  304. if(a=='f'):
  305. return {
  306. '0': '17',
  307. '1': '2b',
  308. '2': '04',
  309. '3': '7e',
  310. '4': 'ba',
  311. '5': '77',
  312. '6': 'd6',
  313. '7': '26',
  314. '8': 'e1',
  315. '9': '69',
  316. 'a': '14',
  317. 'b': '63',
  318. 'c': '55',
  319. 'd': '21',
  320. 'e': '0c',
  321. 'f': '7d',
  322. }[b]
  323.  
  324. f=a
  325. global k2
  326. c=[['02','03','01','01'],['01','02','03','01'],['01','01','02','03'],['03','01','01','02']]
  327. w=[[0 for j in range(4)] for i in range(4)]
  328. g=[[0 for j in range(4)] for i in range(4)]
  329. h=[[0 for j in range(4)] for i in range(4)]
  330. for i in range(16):
  331. w[i//4][i%4]=int(f[i],16)
  332. g[i//4][i%4]=int(k2[i],16)
  333. for i in range(4):
  334. for j in range(4):
  335. h[i][j]=w[i][j]^g[i][j]
  336. for i in range(4):
  337. for j in range(4):
  338. g[i][j]=int(c[i][j],16)^h[i][j]
  339. t=g[3][0]
  340. for i in range(3):
  341. g[3][i]=g[3][i+1]
  342. g[3][3]=t
  343. t=g[2][0]
  344. for i in range(3):
  345. g[2][i]=g[2][i+1]
  346. g[2][3]=t
  347. t=g[2][0]
  348. for i in range(3):
  349. g[2][i]=g[2][i+1]
  350. g[2][3]=t
  351. t=g[1][3]
  352. for i in range(3,0,-1):
  353. g[1][i]=g[1][i-1]
  354. g[1][0]=t
  355. for i in range(4):
  356. for j in range(4):
  357. g[i][j]=format(g[i][j],'x')
  358. if(len(g[i][j])==1):
  359. g[i][j]='0'+g[i][j]
  360. for i in range(4):
  361. for j in range(4):
  362. g[i][j]=isbox(g[i][j][0],g[i][j][1])
  363. for i in range(16):
  364. k2[i]=g[i//4][i%4]
  365.  
  366. decrypt(r[4])
  367. decrypt(r[3])
  368. decrypt(r[2])
  369. decrypt(r[1])
  370. for i in range(16):
  371. k2[i]=format(int(k2[i],16)^int(r[0][i],16),'x')
  372. #final=''.join(k2)
  373. final=bytearray.fromhex(final).decode()
  374. print("The decrypted message is ",final)
  375. cur.commit()
Add Comment
Please, Sign In to add comment