Advertisement
xathrya

Validator

Aug 13th, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.33 KB | None | 0 0
  1. from math import floor, ceil, log, exp
  2. from string import digits, ascii_letters
  3. from sys import stdout
  4.  
  5. dxdiag    = [2526304,442413,77476,6455302,4318205,1063,1932310,338391,34669,6455302,2209435,6942,929,4318205,338391,1292598,4937507,338391,5645626,1130470,929,338391,505862,756216,67758,5645626,338391,4937507,5645626,59260,1292598,34669,988677,338391,578411,1130470,929,578411,1689944,10377,4318205,338391,756216,7381098,10377,4318205]
  6. charsets = digits + ascii_letters + '_'
  7.  
  8. def get_const(val, start):
  9.     counter = 1.0
  10.     divisor = 1.0 + start
  11.     while True:
  12.         result = floor(exp(counter * 13 / divisor))
  13.         if result == val:
  14.             return (chr(int(counter)), divisor)
  15.         elif result > val:
  16.             divisor += 1
  17.             counter  = 1.0
  18.         counter += 1
  19.  
  20. def transform_char(val, konst):
  21.     return chr(int(ceil(log(val * 1.0) * konst / 13)))
  22.        
  23. def main():
  24.     konst = 0
  25.     iter = 1
  26.     result_arr = []
  27.    
  28.     while True:
  29.         result_arr = []
  30.         char, konst = get_const(dxdiag[0], konst)
  31.         print("Iteration %d: Using const %d" % (iter, konst))
  32.        
  33.         if char in charsets:
  34.             result_arr = map(lambda x: transform_char(x, konst), dxdiag)   
  35.             print result_arr
  36.             result_arr = filter(lambda c: c in charsets, result_arr)
  37.        
  38.             if len(result_arr) == len(dxdiag):
  39.                 flag = ''.join(result_arr)
  40.                 print("Flag is: %s" % (flag))
  41.                 break
  42.                
  43.         iter += 1
  44.                
  45. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement