mirror of
https://github.com/20kaushik02/CSE545_SS_Work.git
synced 2025-12-06 12:44:06 +00:00
552 lines
13 KiB
Python
552 lines
13 KiB
Python
import argparse
|
|
import time
|
|
|
|
|
|
def verify(ctx: str) -> bool:
|
|
result = 0
|
|
|
|
"""""" """""" """""" """""" """""" """""" """""" """""" """""" """"""
|
|
|
|
if ord(ctx[0]) > 127: # 0
|
|
result = result | 0x26
|
|
|
|
if ord(ctx[0]) & 0x40 != 0: # 0
|
|
result = result | 0x26
|
|
|
|
if ord(ctx[0]) & 0x20 == 0: # 1
|
|
result = result | 0x27
|
|
|
|
if ord(ctx[0]) & 0x10 == 0: # 1
|
|
result = result | 0x26
|
|
|
|
if ord(ctx[0]) & 8 != 0: # 0
|
|
result = result | 4
|
|
|
|
if ord(ctx[0]) & 4 == 0: # 1
|
|
result = result | 0x11
|
|
|
|
if ord(ctx[0]) & 2 == 0: # 1
|
|
result = result | 5
|
|
|
|
if ord(ctx[0]) & 1 != 0: # 0
|
|
result = result | 0x22
|
|
|
|
"""""" """""" """""" """""" """""" """""" """""" """""" """""" """"""
|
|
|
|
if ord(ctx[1]) > 127: # 0
|
|
result = result | 2
|
|
|
|
if ord(ctx[1]) & 0x40 != 0: # 0
|
|
result = result | 2
|
|
|
|
if ord(ctx[1]) & 0x20 == 0: # 1
|
|
result = result | 0x25
|
|
|
|
if ord(ctx[1]) & 0x10 == 0: # 1
|
|
result = result | 0x12
|
|
|
|
if ord(ctx[1]) & 8 != 0: # 0
|
|
result = result | 0x27
|
|
|
|
if ord(ctx[1]) & 4 == 0: # 1
|
|
result = result | 0x1C
|
|
|
|
if ord(ctx[1]) & 2 == 0: # 1
|
|
result = result | 9
|
|
|
|
if ord(ctx[1]) & 1 == 0: # 1
|
|
result = result | 0x11
|
|
|
|
"""""" """""" """""" """""" """""" """""" """""" """""" """""" """"""
|
|
|
|
if ord(ctx[2]) > 127: # 0
|
|
result = result | 0x11
|
|
|
|
if ord(ctx[2]) & 0x40 == 0: # 1
|
|
result = result | 0x15
|
|
|
|
if ord(ctx[2]) & 0x20 == 0: # 1
|
|
result = result | 0x11
|
|
|
|
if ord(ctx[2]) & 0x10 != 0: # 0
|
|
result = result | 0xD
|
|
|
|
if ord(ctx[2]) & 8 == 0: # 1
|
|
result = result | 0x29
|
|
|
|
if ord(ctx[2]) & 4 != 0: # 0
|
|
result = result | 0x23
|
|
|
|
if ord(ctx[2]) & 2 == 0: # 1
|
|
result = result | 0xD
|
|
|
|
if ord(ctx[2]) & 1 == 0: # 1
|
|
result = result | 0x1C
|
|
|
|
"""""" """""" """""" """""" """""" """""" """""" """""" """""" """"""
|
|
|
|
if ord(ctx[3]) > 127: # 0
|
|
result = result | 0x1E
|
|
|
|
if ord(ctx[3]) & 0x40 == 0: # 1
|
|
result = result | 0x28
|
|
|
|
if ord(ctx[3]) & 0x20 != 0: # 0
|
|
result = result | 0x28
|
|
|
|
if ord(ctx[3]) & 0x10 == 0: # 1
|
|
result = result | 0x14
|
|
|
|
if ord(ctx[3]) & 8 != 0: # 0
|
|
result = result | 0x1F
|
|
|
|
if ord(ctx[3]) & 4 == 0: # 1
|
|
result = result | 0x28
|
|
|
|
if ord(ctx[3]) & 2 == 0: # 1
|
|
result = result | 0x13
|
|
|
|
if ord(ctx[3]) & 1 == 0: # 1
|
|
result = result | 0x2C
|
|
|
|
"""""" """""" """""" """""" """""" """""" """""" """""" """""" """"""
|
|
|
|
if ord(ctx[4]) > 127: # 0
|
|
result = result | 0x19
|
|
|
|
if ord(ctx[4]) & 0x40 != 0: # 0
|
|
result = result | 0x11
|
|
|
|
if ord(ctx[4]) & 0x20 == 0: # 1
|
|
result = result | 0x1F
|
|
|
|
if ord(ctx[4]) & 0x10 == 0: # 1
|
|
result = result | 8
|
|
|
|
if ord(ctx[4]) & 8 != 0: # 0
|
|
result = result | 0x2D
|
|
|
|
if ord(ctx[4]) & 4 == 0: # 1
|
|
result = result | 0x1C
|
|
|
|
if ord(ctx[4]) & 2 == 0: # 1
|
|
result = result | 8
|
|
|
|
if ord(ctx[4]) & 1 != 0: # 0
|
|
result = result | 0x10
|
|
|
|
"""""" """""" """""" """""" """""" """""" """""" """""" """""" """"""
|
|
|
|
if ord(ctx[5]) > 127: # 0
|
|
result = result | 9
|
|
|
|
if ord(ctx[5]) & 0x40 == 0: # 1
|
|
result = result | 0x19
|
|
|
|
if ord(ctx[5]) & 0x20 != 0: # 0
|
|
result = result | 0x1C
|
|
|
|
if ord(ctx[5]) & 0x10 == 0: # 1
|
|
result = result | 0x17
|
|
|
|
if ord(ctx[5]) & 8 == 0: # 1
|
|
result = result | 0x27
|
|
|
|
if ord(ctx[5]) & 4 != 0: # 0
|
|
result = result | 0x18
|
|
|
|
if ord(ctx[5]) & 2 != 0: # 0
|
|
result = result | 0x2D
|
|
|
|
if ord(ctx[5]) & 1 == 0: # 1
|
|
result = result | 0x1A
|
|
|
|
"""""" """""" """""" """""" """""" """""" """""" """""" """""" """"""
|
|
|
|
if ord(ctx[6]) > 127: # 0
|
|
result = result | 0x10
|
|
|
|
if ord(ctx[6]) & 0x40 == 0: # 1
|
|
result = result | 7
|
|
|
|
if ord(ctx[6]) & 0x20 == 0: # 1
|
|
result = result | 0x2B
|
|
|
|
if ord(ctx[6]) & 0x10 != 0: # 0
|
|
result = result | 0x24
|
|
|
|
if ord(ctx[6]) & 8 == 0: # 1
|
|
result = result | 0x15
|
|
|
|
if ord(ctx[6]) & 4 == 0: # 1
|
|
result = result | 0xF
|
|
|
|
if ord(ctx[6]) & 2 == 0: # 1
|
|
result = result | 9
|
|
|
|
if ord(ctx[6]) & 1 != 0: # 0
|
|
result = result | 1
|
|
|
|
"""""" """""" """""" """""" """""" """""" """""" """""" """""" """"""
|
|
|
|
if ord(ctx[7]) > 127: # 0
|
|
result = result | 0x27
|
|
|
|
if ord(ctx[7]) & 0x40 == 0: # 1
|
|
result = result | 0xC
|
|
|
|
if ord(ctx[7]) & 0x20 != 0: # 0
|
|
result = result | 4
|
|
|
|
if ord(ctx[7]) & 0x10 != 0: # 0
|
|
result = result | 0x1A
|
|
|
|
if ord(ctx[7]) & 8 == 0: # 1
|
|
result = result | 0x14
|
|
|
|
if ord(ctx[7]) & 4 != 0: # 0
|
|
result = result | 0x1A
|
|
|
|
if ord(ctx[7]) & 2 == 0: # 1
|
|
result = result | 8
|
|
|
|
if ord(ctx[7]) & 1 == 0: # 1
|
|
result = result | 9
|
|
|
|
"""""" """""" """""" """""" """""" """""" """""" """""" """""" """"""
|
|
|
|
if ord(ctx[8]) > 127: # 0
|
|
result = result | 0x2C
|
|
|
|
if ord(ctx[8]) & 0x40 == 0: # 1
|
|
result = result | 0x16
|
|
|
|
if ord(ctx[8]) & 0x20 == 0: # 1
|
|
result = result | 0x22
|
|
|
|
if ord(ctx[8]) & 0x10 == 0: # 1
|
|
result = result | 0x28
|
|
|
|
if ord(ctx[8]) & 8 != 0: # 0
|
|
result = result | 0x22
|
|
|
|
if ord(ctx[8]) & 4 == 0: # 1
|
|
result = result | 9
|
|
|
|
if ord(ctx[8]) & 2 == 0: # 1
|
|
result = result | 0x17
|
|
|
|
if ord(ctx[8]) & 1 != 0: # 0
|
|
result = result | 0x22
|
|
|
|
"""""" """""" """""" """""" """""" """""" """""" """""" """""" """"""
|
|
|
|
if ord(ctx[9]) > 127: # 0
|
|
result = result | 0x19
|
|
|
|
if ord(ctx[9]) & 0x40 == 0: # 1
|
|
result = result | 0x29
|
|
|
|
if ord(ctx[9]) & 0x20 != 0: # 0
|
|
result = result | 0x2D
|
|
|
|
if ord(ctx[9]) & 0x10 == 0: # 1
|
|
result = result | 0x23
|
|
|
|
if ord(ctx[9]) & 8 != 0: # 0
|
|
result = result | 0x12
|
|
|
|
if ord(ctx[9]) & 4 == 0: # 1
|
|
result = result | 2
|
|
|
|
if ord(ctx[9]) & 2 != 0: # 0
|
|
result = result | 0x11
|
|
|
|
if ord(ctx[9]) & 1 != 0: # 0
|
|
result = result | 4
|
|
|
|
"""""" """""" """""" """""" """""" """""" """""" """""" """""" """"""
|
|
|
|
if ord(ctx[10]) > 127: # 0
|
|
result = result | 0x26
|
|
|
|
if ord(ctx[10]) & 0x40 == 0: # 1
|
|
result = result | 0x15
|
|
|
|
if ord(ctx[10]) & 0x20 == 0: # 1
|
|
result = result | 0xC
|
|
|
|
if ord(ctx[10]) & 0x10 == 0: # 1
|
|
result = 0x1B
|
|
|
|
if ord(ctx[10]) & 8 != 0: # 0
|
|
result = result | 0xD
|
|
|
|
if ord(ctx[10]) & 4 != 0: # 0
|
|
result = result | 0x24
|
|
|
|
if ord(ctx[10]) & 2 != 0: # 0
|
|
result = result | 0x21
|
|
|
|
if ord(ctx[10]) & 1 != 0: # 0
|
|
result = result | 0x23
|
|
|
|
"""""" """""" """""" """""" """""" """""" """""" """""" """""" """"""
|
|
|
|
if ord(ctx[0xB]) > 127: # 0
|
|
result = result | 0x16
|
|
|
|
if ord(ctx[0xB]) & 0x40 == 0: # 1
|
|
result = result | 0x11
|
|
|
|
if ord(ctx[0xB]) & 0x20 == 0: # 1
|
|
result = result | 7
|
|
|
|
if ord(ctx[0xB]) & 0x10 != 0: # 0
|
|
result = result | 0x19
|
|
|
|
if ord(ctx[0xB]) & 8 != 0: # 0
|
|
result = result | 0x1A
|
|
|
|
if ord(ctx[0xB]) & 4 != 0: # 0
|
|
result = result | 0x29
|
|
|
|
if ord(ctx[0xB]) & 2 != 0: # 0
|
|
result = result | 0x23
|
|
|
|
if ord(ctx[0xB]) & 1 == 0: # 1
|
|
result = result | 0x2A
|
|
|
|
"""""" """""" """""" """""" """""" """""" """""" """""" """""" """"""
|
|
|
|
if ord(ctx[0xC]) > 127: # 0
|
|
result = result | 0x2B
|
|
|
|
if ord(ctx[0xC]) & 0x40 == 0: # 1
|
|
result = result | 0x10
|
|
|
|
if ord(ctx[0xC]) & 0x20 == 0: # 1
|
|
result = result | 0x12
|
|
|
|
if ord(ctx[0xC]) & 0x10 == 0: # 1
|
|
result = result | 0x29
|
|
|
|
if ord(ctx[0xC]) & 8 != 0: # 0
|
|
result = result | 3
|
|
|
|
if ord(ctx[0xC]) & 4 != 0: # 0
|
|
result = result | 0x1C
|
|
|
|
if ord(ctx[0xC]) & 2 != 0: # 0
|
|
result = result | 0x11
|
|
|
|
if ord(ctx[0xC]) & 1 == 0: # 1
|
|
result = result | 4
|
|
|
|
"""""" """""" """""" """""" """""" """""" """""" """""" """""" """"""
|
|
|
|
if ord(ctx[0xD]) > 127: # 0
|
|
result = result | 0x16
|
|
|
|
if ord(ctx[0xD]) & 0x40 == 0: # 1
|
|
result = result | 0x21
|
|
|
|
if ord(ctx[0xD]) & 0x20 == 0: # 1
|
|
result = result | 2
|
|
|
|
if ord(ctx[0xD]) & 0x10 != 0: # 0
|
|
result = result | 0x2D
|
|
|
|
if ord(ctx[0xD]) & 8 == 0: # 1
|
|
result = result | 0x1D
|
|
|
|
if ord(ctx[0xD]) & 4 == 0: # 1
|
|
result = result | 0xB
|
|
|
|
if ord(ctx[0xD]) & 2 == 0: # 1
|
|
result = result | 9
|
|
|
|
if ord(ctx[0xD]) & 1 == 0: # 1
|
|
result = result | 0xC
|
|
|
|
"""""" """""" """""" """""" """""" """""" """""" """""" """""" """"""
|
|
|
|
if ord(ctx[0xE]) > 127: # 0
|
|
result = result | 0x24
|
|
|
|
if ord(ctx[0xE]) & 0x40 == 0: # 1
|
|
result = result | 0x12
|
|
|
|
if ord(ctx[0xE]) & 0x20 != 0: # 0
|
|
result = result | 0x22
|
|
|
|
if ord(ctx[0xE]) & 0x10 != 0: # 0
|
|
result = result | 0xE
|
|
|
|
if ord(ctx[0xE]) & 8 != 0: # 0
|
|
result = result | 9
|
|
|
|
if ord(ctx[0xE]) & 4 != 0: # 0
|
|
result = result | 2
|
|
|
|
if ord(ctx[0xE]) & 2 == 0: # 1
|
|
result = result | 0x28
|
|
|
|
if ord(ctx[0xE]) & 1 != 0: # 0
|
|
result = result | 0x2C
|
|
|
|
"""""" """""" """""" """""" """""" """""" """""" """""" """""" """"""
|
|
|
|
if ord(ctx[0xF]) > 127: # 0
|
|
result = result | 0x2B
|
|
|
|
if ord(ctx[0xF]) & 0x40 == 0: # 1
|
|
result = result | 0x27
|
|
|
|
if ord(ctx[0xF]) & 0x20 != 0: # 0
|
|
result = result | 0x21
|
|
|
|
if ord(ctx[0xF]) & 0x10 == 0: # 1
|
|
result = result | 0x1F
|
|
|
|
if ord(ctx[0xF]) & 8 == 0: # 1
|
|
result = result | 9
|
|
|
|
if ord(ctx[0xF]) & 4 != 0: # 0
|
|
result = result | 10
|
|
|
|
if ord(ctx[0xF]) & 2 != 0: # 0
|
|
result = result | 0xC
|
|
|
|
if ord(ctx[0xF]) & 1 != 0: # 0
|
|
result = result | 0x23
|
|
|
|
"""""" """""" """""" """""" """""" """""" """""" """""" """""" """"""
|
|
|
|
if ord(ctx[0x10]) > 127: # 0
|
|
result = result | 7
|
|
|
|
if ord(ctx[0x10]) & 0x40 != 0: # 0
|
|
result = result | 0x2B
|
|
|
|
if ord(ctx[0x10]) & 0x20 == 0: # 1
|
|
result = result | 0x21
|
|
|
|
if ord(ctx[0x10]) & 0x10 == 0: # 1
|
|
result = result | 0x28
|
|
|
|
if ord(ctx[0x10]) & 8 != 0: # 0
|
|
result = result | 0x2B
|
|
|
|
if ord(ctx[0x10]) & 4 != 0: # 0
|
|
result = result | 4
|
|
|
|
if ord(ctx[0x10]) & 2 != 0: # 0
|
|
result = result | 8
|
|
|
|
if ord(ctx[0x10]) & 1 == 0: # 1
|
|
result = result | 0x26
|
|
|
|
"""""" """""" """""" """""" """""" """""" """""" """""" """""" """"""
|
|
|
|
if ord(ctx[0x11]) > 127: # 0
|
|
result = result | 0x1E
|
|
|
|
if ord(ctx[0x11]) & 0x40 == 0: # 1
|
|
result = result | 0x11
|
|
|
|
if ord(ctx[0x11]) & 0x20 != 0: # 0
|
|
result = result | 2
|
|
|
|
if ord(ctx[0x11]) & 0x10 != 0: # 0
|
|
result = result | 0x19
|
|
|
|
if ord(ctx[0x11]) & 8 != 0: # 0
|
|
result = result | 0x29
|
|
|
|
if ord(ctx[0x11]) & 4 == 0: # 1
|
|
result = result | 0x18
|
|
|
|
if ord(ctx[0x11]) & 2 == 0: # 1
|
|
result = result | 3
|
|
|
|
if ord(ctx[0x11]) & 1 != 0: # 0
|
|
result = result | 0x1D
|
|
|
|
"""""" """""" """""" """""" """""" """""" """""" """""" """""" """"""
|
|
|
|
if ord(ctx[0x12]) > 127: # 0
|
|
result = result | 0x1A
|
|
|
|
if ord(ctx[0x12]) & 0x40 != 0: # 0
|
|
result = result | 0x25
|
|
|
|
if ord(ctx[0x12]) & 0x20 == 0: # 1
|
|
result = result | 0x26
|
|
|
|
if ord(ctx[0x12]) & 0x10 == 0: # 1
|
|
result = result | 0x11
|
|
|
|
if ord(ctx[0x12]) & 8 == 0: # 1
|
|
result = result | 0x1A
|
|
|
|
if ord(ctx[0x12]) & 4 != 0: # 0
|
|
result = result | 0x28
|
|
|
|
if ord(ctx[0x12]) & 2 != 0: # 0
|
|
result = result | 0x15
|
|
|
|
if ord(ctx[0x12]) & 1 != 0: # 0
|
|
result = result | 0x10
|
|
|
|
"""""" """""" """""" """""" """""" """""" """""" """""" """""" """"""
|
|
|
|
if ord(ctx[0x13]) > 127: # 0
|
|
result = result | 0x27
|
|
|
|
if ord(ctx[0x13]) & 0x40 == 0: # 1
|
|
result = result | 0xB
|
|
|
|
if ord(ctx[0x13]) & 0x20 == 0: # 1
|
|
result = result | 0x21
|
|
|
|
if ord(ctx[0x13]) & 0x10 != 0: # 0
|
|
result = result | 0x2C
|
|
|
|
if ord(ctx[0x13]) & 8 == 0: # 1
|
|
result = result | 0x1C
|
|
|
|
if ord(ctx[0x13]) & 4 == 0: # 1
|
|
result = result | 0xD
|
|
|
|
if ord(ctx[0x13]) & 2 != 0: # 0
|
|
result = result | 0x14
|
|
|
|
if ord(ctx[0x13]) & 1 != 0: # 0
|
|
result = result | 0x14
|
|
|
|
# 00110110 00110111 01101011 01010111 00110110 01011001 01101110 01001011 01110110 01010100 01110000 01100001 01110001 01101111 01000010 01011000 00110001 01000110 00111000 01101100
|
|
|
|
return result == 0
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("-s", "--binary_str", required=True, dest="in_str", type=str)
|
|
args = parser.parse_args()
|
|
|
|
target_str = "".join([chr(int(x, base=2)) for x in args.in_str.split()])
|
|
print(target_str)
|
|
|
|
start_t = time.time()
|
|
if verify(target_str):
|
|
print("OMG")
|
|
print(args.in_str)
|
|
print(target_str)
|
|
end_t = time.time()
|
|
print(f"checked string in {end_t-start_t} seconds")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|