예제 #1
0
 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)
예제 #2
0
    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
예제 #3
0
    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
예제 #4
0
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
예제 #5
0
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)