def test_aes_works_for_correct_key(self): k = utils.generate_aes_key(128) clear_text = b'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod ' \ b'tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim ' \ b'veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea' \ b' commodo consequat. Duis aute irure dolor in reprehenderit in voluptate ' \ b'velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat' \ b' cupidatat non proident, sunt in culpa qui officia deserunt mollit anim ' \ b'id est laborum.' encrypted = utils.aes_encrypt(clear_text, k) decrypted = utils.aes_decrypt(encrypted, k) self.assertEqual(clear_text, decrypted)
def decrypt(self, passphrase): if self.reference: return False hint = self.hint.decode('base64') key = hashlib.sha256(passphrase).digest() hint2 = hashlib.sha256(key).digest() if hint != hint2: return False f = self.loader.file(self.name + '_encrypted.bin') dec = StringIO() data = aes_decrypt(f.read(), key) assert data.startswith('\x89PNG') dec.write(data) dec.seek(0) tex = pyglet.image.load('foo.png', file=dec) self.reference = tex self.decrypted = True return True
def decrypt(self, passphrase): if self.reference: return False hint = self.hint.decode('base64') key = hashlib.sha256(passphrase).digest() hint2 = hashlib.sha256(key).digest() if hint != hint2: return False f = loader.file(self.path + '_encrypted.bin', 'rb') dec = StringIO() data = aes_decrypt(f.read(), key) assert data.startswith('\x89PNG') dec.write(data) dec.seek(0) tex = pyglet.image.load('foo.png', file=dec) self.reference = tex self.decrypted = True return True
def extract_bouncy_tcp_msg(original_payload: bytes, session_key: bytes) -> BouncyTcpMessage: bouncy_tcp_bytes = utils.aes_decrypt(original_payload, session_key) msg = bfcp_pb2.BouncyTcpMessage() msg.ParseFromString(bouncy_tcp_bytes) return msg
def read_exam(filename): """ 读取试题 :return: """ with open(filename, 'r', encoding='utf-8') as fout: data = json.loads(fout.read()) with open('data/question.csv', 'a', encoding='utf-8') as fout: csv_writer = csv.DictWriter(fout, fieldnames= ['Title', 'Explain', 'TestPoint', 'Answer', 'OptionA', 'OptionB', 'OptionC', 'OptionD', 'OptionE', 'StyleType', 'AllTestID', 'ATestID', 'SrcID', 'SbjID', 'CptID']) # csv_writer.writeheader() for style in data['data']['test']['StyleItems']: if style['StyleID'] == 4: # print(style) for item in style['TestItems']: FrontTitle = aes_decrypt(item['FrontTitle']) # A3TestItems for a3item in item['A3TestItems']: title = FrontTitle + aes_decrypt(a3item['Title']) title = title.strip() question = dict() question['Title'] = title question['Explain'] = a3item['Explain'] question['TestPoint'] = a3item['TestPoint'] question['Answer'] = a3item['Answer'] question['OptionA'] = '' question['OptionB'] = '' question['OptionC'] = '' question['OptionD'] = '' question['OptionE'] = '' question['OptionA'] = a3item['SelectedItems'][0]['Content'] question['OptionB'] = a3item['SelectedItems'][1]['Content'] question['OptionC'] = a3item['SelectedItems'][2]['Content'] question['OptionD'] = a3item['SelectedItems'][3]['Content'] if len(a3item['SelectedItems']) > 4: question['OptionE'] = a3item['SelectedItems'][4]['Content'] question['StyleType'] = item['StyleType'] question['AllTestID'] = item['AllTestID'] # question['ATestID']=item['ATestID'] question['SrcID'] = item['SrcID'] question['SbjID'] = item['SbjID'] question['CptID'] = item['CptID'] csv_writer.writerow(question) # print(a3item['SelectedItems']) if style['StyleID'] == 3: # print(style) for item in style['TestItems']: # print(item) for bitem in item['BTestItems']: # print(bitem) title = aes_decrypt(bitem['Title']) # print(title) # print(item['SelectedItems']) title = title.strip() question = dict() question['Title'] = title question['Explain'] = bitem['Explain'] question['TestPoint'] = bitem['TestPoint'] question['Answer'] = bitem['Answer'] question['OptionA'] = '' question['OptionB'] = '' question['OptionC'] = '' question['OptionD'] = '' question['OptionE'] = '' question['OptionA'] = item['SelectedItems'][0]['Content'] question['OptionB'] = item['SelectedItems'][1]['Content'] question['OptionC'] = item['SelectedItems'][2]['Content'] question['OptionD'] = item['SelectedItems'][3]['Content'] if len(item['SelectedItems']) > 4: question['OptionE'] = item['SelectedItems'][4]['Content'] question['StyleType'] = item['StyleType'] question['AllTestID'] = item['AllTestID'] # question['ATestID']=item['ATestID'] question['SrcID'] = item['SrcID'] question['SbjID'] = item['SbjID'] question['CptID'] = item['CptID'] csv_writer.writerow(question) # A1 A2 # if style['StyleID'] == 1 or style['StyleID'] == 2: if style['StyleID'] == 1 or style['StyleID'] == 2 or style['StyleID'] == 5: for item in style['TestItems']: # print(item, len(item['SelectedItems'])) question = dict() question['Title'] = aes_decrypt(item['Title']) question['Explain'] = item['Explain'] question['TestPoint'] = item['TestPoint'] question['Answer'] = item['Answer'] question['OptionA'] = '' question['OptionB'] = '' question['OptionC'] = '' question['OptionD'] = '' question['OptionE'] = '' question['OptionA'] = item['SelectedItems'][0]['Content'] question['OptionB'] = item['SelectedItems'][1]['Content'] question['OptionC'] = item['SelectedItems'][2]['Content'] question['OptionD'] = item['SelectedItems'][3]['Content'] if len(item['SelectedItems']) > 4: question['OptionE'] = item['SelectedItems'][4]['Content'] question['StyleType'] = item['StyleType'] question['AllTestID'] = item['AllTestID'] # question['ATestID']=item['ATestID'] question['SrcID'] = item['SrcID'] question['SbjID'] = item['SbjID'] question['CptID'] = item['CptID'] csv_writer.writerow(question)