Skip to content

Instantly share code, notes, and snippets.

@pawlos
Created November 14, 2016 22:59
Show Gist options
  • Select an option

  • Save pawlos/dc82aa2b46eb1115f49cba20612be1e6 to your computer and use it in GitHub Desktop.

Select an option

Save pawlos/dc82aa2b46eb1115f49cba20612be1e6 to your computer and use it in GitHub Desktop.
import hashlib
import struct
import zlib
import base64
def k(l,key):
l='{}{}'.format(l,struct.pack('i',zlib.crc32(l)))
m=[]
for i in range(len(l)):
o=key[i%len(key)]
n=chr((ord(l[i])+ord(o))%256)
m.append(n)
return base64.urlsafe_b64encode("".join(m))
def p(s,key):
r=[]
s=base64.urlsafe_b64decode(s)
for i in range(len(s)):
o=key[i%len(key)]
t=chr((256+ord(s[i])-ord(o))%256)
r.append(t)
r="".join(r)
u=r[-4:]
r=r[:-4]
assert zlib.crc32(r)==struct.unpack('i',u)[0],'Decode Checksum Error'
return r
print p("""314e4c703274667469396665334e726533746e7369345763693833743339575a33746e7530637544314e4c703274667469396e7232735f613259575a6a6f58673274546469396e68314e5067693958793338336f325958687a4e695a304e7665336437743038376e306d5f69324e586f33646d5a3338376d3049575a6a6f586732746d5a3338336569396e69324d71446459695a324e365a337372633363727469394c6131397a613363715a3238626e304e474472724f387972724c7434573269347a6833396e7033702d6f6d746a657a746665333958613263726c6d63726333744b726d3561766d636a6533646d6e3239476764616a487273544a724c6e4269364b5a6b705467304e6e597a74546d324d626e7a34794464636e653059586332636a593073727479736a6f324e4c6132636d686c4a2d446934575a6934695a3073727469386a6f324e4c6132636d5a3064666f324958636b6369446934575a6939655a71495872304e6275304e6a7433705067304e6d6872724f387972724c7434576b69366a487273544a724c6e426c472d5a6934575a33637274344e666e6939656e31646a6f3259326964575f64304d755a7a74506379746a6532636e597a3862747a4933647a4e6e616c4a2d446934575a6934695a3373726e7a3458693263766f33644c613338376f3264695a3339535a7a6f76636459575a6934587269364b5a33637271344d72733339696e307372746b366a487273544f7662475a6c6f573875616a597536624e7335475a323862727a4e4c73714f43677a3862747a49797a69386e61333862326c472d5a6934575a33637274344e666e6939656e31646a6f3259326964575f64304d755a324d62693259326970572d5a6934575a347333693138715a76396675304a2d446934575a6934575a6934586332744c6d7a4e506469364b5a7a74506379737a653338546332744c6d7a4e50646b3436446934575a6934575a693458693059586332744c6d7a4e5064786f7a6332744c6d7a4e50646b734b5a714b4b5a6b746a6c304d72706b702d446934575a6934575a6934575a6934575a6a6f586e32746e68314e506769396e6f69386e6f6c34586a344e6a746459575a6934575a6934575a6934575a69396e69324d716e33744865304e5768314e50746b386a6f324e4c6132636e556b746a6c304d727079746a657a74546e7a396967794936696459575a6934575a6934575a304e48693059586332744c6d7a4e5064786f7a6332744c6d7a4e50646b734b5a714b4b5a6b737a6533385465324d62693139696770572d5a6934575a6934575a6934575a6934576369396a74304d626c6938726d7a4d376c336f58663364546d69397273304e65446934575a6934575a6934575a6934575a304e4c61314e487369364b5a3339666f3163626e6d646a74304d626c7973726d7a4d376c336f32696459575a6934575a6934575a6934575a69386a6e7a735473304e506479736e6133386168304e4c61314e48736c472d5a6934575a6934575a6938726c314d755a7a74546d324d626e7a3843677a74546d324d626e7a347a5769364b3269347a67304e6e593238627333747a6f33636e736b702d446934575a6934575a6934575a6934575a6a6f587333387261313458707a4e6a73347454727a39695a3064666f32495875337372726459575a6934575a6934575a6934575a6939586133746a7732746664336f573269396e7232735f61325a507333387261313854707a4e6a73347454727a3969686c472d5a6934575a6934575a6934575a6934586332636a593373726e7a3854647a4e6e616b39586133746a7732746664336f36446934575a6934575a693458653138376669386a6f324e4c6132636e556b736a6f324e4c6132636d67794957327149576733746e6133646e59346450636b702d446934575a6934575a6934575a6934575a6a6f587333386272333458763263695a337372723463727269396a6f69397a6569386a61325958733239365a32744f5a3338336569386a6f324e5875333872726459575a6934575a6934575a6934575a6938726d7a4d376c336f573269396e7232735f61325a5072344e50593464506379746a653364766533593275704a57706c472d5a6934575a6934575a6938726c314d755a7a74546d324d626e7a3843677a74546d324d626e7a347a5769364b3269347a7333386272333854763263696770572d5a6934575a6934575a6934575a6934576369396a747a4e66746939766e7a6f5873304e6676304e655a3374535a3473715a7a73626e69396a703549586f325958743038715a7a74546d32397274304e65446934575a6934575a6934575a6934575a304e4c61314e487369364b5a3339666f3163626e6d6466753263547632636a5933737272346372726b3571796d3557696459575a6934575a6934575a304e48693059586332744c6d7a4e5064786f7a6332744c6d7a4e50646b734b5a714b4b5a6b7372767a4e48597a7454643049797a6459575a6934575a6934575a6934575a6934695a304e33657a7472743049586f344e655a324d626c314d6a693274727369386a6f7a3871446934575a6934575a6934575a6934575a304e33657a6f336332744c6d7a4e5064786f7a70354e6e68327450597a74546430497a576c472d5a6934575a6934575a6938726c3373717a6459575a6934575a6934575a6934575a6934695a32746e68304e6677314e6a6569385f7533746d5a33744865304e57446934575a6934575a6934575a6934575a3338376d304a507331387265323432716d35576964575f693059585979745061324d7259796f5732714957677973546d7a4d376e7973536770572d5a6934575a3239666932646d5a6b7162643463626e7a73726469376a74304d626c3338337969376e7232735f61325957716e7069776b6d2d5a6934575a324d62693259326964626c4c5078673d""".decode('hex'),'key')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment