Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- k='Thats my Kung Fu'
- import pymysql
- conn=pymysql.connect(host='localhost',user='root',password='123456789',db='cyber')
- cur=conn.cursor(pymysql.cursors.DictCursor)
- cur.execute("select top 1 from enc_data")
- def split(s, n):
- new_list = []
- for i in range(0, len(s), n):
- new_list.append(s[i:i+n])
- return new_list
- global k2
- k2=[0 for i in range(16)]
- k2 = cur.fetchone()
- def decrypt(a):
- def isbox(a,b):
- if(a=='0'):
- return {
- '0': '52',
- '1': '09',
- '2': '6a',
- '3': 'd5',
- '4': '30',
- '5': '36',
- '6': 'a5',
- '7': '38',
- '8': 'bf',
- '9': '40',
- 'a': 'a3',
- 'b': '9e',
- 'c': '81',
- 'd': 'f3',
- 'e': 'd7',
- 'f': 'fb',
- }[b]
- if(a=='1'):
- return {
- '0': '7c',
- '1': 'e3',
- '2': '39',
- '3': '82',
- '4': '9b',
- '5': '2f',
- '6': 'ff',
- '7': '87',
- '8': '34',
- '9': '8e',
- 'a': '43',
- 'b': '44',
- 'c': 'c4',
- 'd': 'de',
- 'e': 'e9',
- 'f': 'cb',
- }[b]
- if(a=='2'):
- return {
- '0': '54',
- '1': '7b',
- '2': '94',
- '3': '32',
- '4': 'a6',
- '5': 'c2',
- '6': '23',
- '7': '3d',
- '8': 'ee',
- '9': '4c',
- 'a': '95',
- 'b': '0b',
- 'c': '42',
- 'd': 'fa',
- 'e': 'c3',
- 'f': '4e',
- }[b]
- if(a=='3'):
- return {
- '0': '08',
- '1': '2e',
- '2': 'a1',
- '3': '66',
- '4': '28',
- '5': 'd9',
- '6': '24',
- '7': 'b2',
- '8': '76',
- '9': '5b',
- 'a': 'a2',
- 'b': '49',
- 'c': '6d',
- 'd': '8b',
- 'e': 'd1',
- 'f': '25',
- }[b]
- if(a=='4'):
- return {
- '0': '72',
- '1': 'f8',
- '2': 'f6',
- '3': '64',
- '4': '86',
- '5': '68',
- '6': '98',
- '7': '16',
- '8': 'd4',
- '9': 'a4',
- 'a': '5c',
- 'b': 'cc',
- 'c': '5d',
- 'd': '65',
- 'e': 'b6',
- 'f': '92',
- }[b]
- if(a=='5'):
- return {
- '0': '6c',
- '1': '70',
- '2': '48',
- '3': '50',
- '4': 'fd',
- '5': 'ed',
- '6': 'b9',
- '7': 'da',
- '8': '5e',
- '9': '15',
- 'a': '46',
- 'b': '57',
- 'c': 'a7',
- 'd': '8d',
- 'e': '9d',
- 'f': '84',
- }[b]
- if(a=='6'):
- return {
- '0': '90',
- '1': 'd8',
- '2': 'ab',
- '3': '00',
- '4': '8c',
- '5': 'bc',
- '6': 'd3',
- '7': '0a',
- '8': 'f7',
- '9': 'e4',
- 'a': '58',
- 'b': '05',
- 'c': 'b8',
- 'd': 'b3',
- 'e': '45',
- 'f': '06',
- }[b]
- if(a=='7'):
- return {
- '0': 'd0',
- '1': '2c',
- '2': '1e',
- '3': '8f',
- '4': 'ca',
- '5': '3f',
- '6': '0f',
- '7': '02',
- '8': 'c1',
- '9': 'af',
- 'a': 'bd',
- 'b': '03',
- 'c': '01',
- 'd': '13',
- 'e': '8a',
- 'f': '6b',
- }[b]
- if(a=='8'):
- return {
- '0': '3a',
- '1': '91',
- '2': '11',
- '3': '41',
- '4': '4f',
- '5': '67',
- '6': 'dc',
- '7': 'ea',
- '8': '97',
- '9': 'f2',
- 'a': 'cf',
- 'b': 'ce',
- 'c': 'f0',
- 'd': 'b4',
- 'e': 'e6',
- 'f': '73',
- }[b]
- if(a=='9'):
- return {
- '0': '96',
- '1': 'ac',
- '2': '74',
- '3': '22',
- '4': 'e7',
- '5': 'ad',
- '6': '35',
- '7': '85',
- '8': 'e2',
- '9': 'f9',
- 'a': '37',
- 'b': 'e8',
- 'c': '1c',
- 'd': '75',
- 'e': 'df',
- 'f': '6e',
- }[b]
- if(a=='a'):
- return {
- '0': '47',
- '1': 'f1',
- '2': '1a',
- '3': '71',
- '4': '1d',
- '5': '29',
- '6': 'c5',
- '7': '89',
- '8': '6f',
- '9': 'b7',
- 'a': '62',
- 'b': '0e',
- 'c': 'aa',
- 'd': '18',
- 'e': 'be',
- 'f': '1b',
- }[b]
- if(a=='b'):
- return {
- '0': 'fc',
- '1': '56',
- '2': '3e',
- '3': '4b',
- '4': 'c6',
- '5': 'd2',
- '6': '79',
- '7': '20',
- '8': '9a',
- '9': 'db',
- 'a': 'c0',
- 'b': 'fe',
- 'c': '78',
- 'd': 'cd',
- 'e': '5a',
- 'f': 'f4',
- }[b]
- if(a=='c'):
- return {
- '0': '1f',
- '1': 'dd',
- '2': 'a8',
- '3': '33',
- '4': '88',
- '5': '07',
- '6': 'c7',
- '7': '31',
- '8': 'b1',
- '9': '12',
- 'a': '10',
- 'b': '59',
- 'c': '27',
- 'd': '80',
- 'e': 'ec',
- 'f': '5f',
- }[b]
- if(a=='d'):
- return {
- '0': '60',
- '1': '51',
- '2': '7f',
- '3': 'a9',
- '4': '19',
- '5': 'b5',
- '6': '4a',
- '7': '0d',
- '8': '2d',
- '9': 'e5',
- 'a': '7a',
- 'b': '9f',
- 'c': '93',
- 'd': 'c9',
- 'e': '9c',
- 'f': 'ef',
- }[b]
- if(a=='e'):
- return {
- '0': 'a0',
- '1': 'e0',
- '2': '3b',
- '3': '4d',
- '4': 'ae',
- '5': '2a',
- '6': 'f5',
- '7': 'b0',
- '8': 'c8',
- '9': 'eb',
- 'a': 'bb',
- 'b': '3c',
- 'c': '83',
- 'd': '53',
- 'e': '99',
- 'f': '61',
- }[b]
- if(a=='f'):
- return {
- '0': '17',
- '1': '2b',
- '2': '04',
- '3': '7e',
- '4': 'ba',
- '5': '77',
- '6': 'd6',
- '7': '26',
- '8': 'e1',
- '9': '69',
- 'a': '14',
- 'b': '63',
- 'c': '55',
- 'd': '21',
- 'e': '0c',
- 'f': '7d',
- }[b]
- f=a
- global k2
- c=[['02','03','01','01'],['01','02','03','01'],['01','01','02','03'],['03','01','01','02']]
- w=[[0 for j in range(4)] for i in range(4)]
- g=[[0 for j in range(4)] for i in range(4)]
- h=[[0 for j in range(4)] for i in range(4)]
- for i in range(16):
- w[i//4][i%4]=int(f[i],16)
- g[i//4][i%4]=int(k2[i],16)
- for i in range(4):
- for j in range(4):
- h[i][j]=w[i][j]^g[i][j]
- for i in range(4):
- for j in range(4):
- g[i][j]=int(c[i][j],16)^h[i][j]
- t=g[3][0]
- for i in range(3):
- g[3][i]=g[3][i+1]
- g[3][3]=t
- t=g[2][0]
- for i in range(3):
- g[2][i]=g[2][i+1]
- g[2][3]=t
- t=g[2][0]
- for i in range(3):
- g[2][i]=g[2][i+1]
- g[2][3]=t
- t=g[1][3]
- for i in range(3,0,-1):
- g[1][i]=g[1][i-1]
- g[1][0]=t
- for i in range(4):
- for j in range(4):
- g[i][j]=format(g[i][j],'x')
- if(len(g[i][j])==1):
- g[i][j]='0'+g[i][j]
- for i in range(4):
- for j in range(4):
- g[i][j]=isbox(g[i][j][0],g[i][j][1])
- for i in range(16):
- k2[i]=g[i//4][i%4]
- decrypt(r[4])
- decrypt(r[3])
- decrypt(r[2])
- decrypt(r[1])
- for i in range(16):
- k2[i]=format(int(k2[i],16)^int(r[0][i],16),'x')
- #final=''.join(k2)
- final=bytearray.fromhex(final).decode()
- print("The decrypted message is ",final)
- cur.commit()
Add Comment
Please, Sign In to add comment