def _get_special_byte_array_from_file(file_name): """Извлекает из файла специальный байтовый массив, который содержит метаданные и зашифрованное сообщение""" with open(file_name, 'rb') as f: end_of_message = Steganography._get_pixels_array_start_pos( file_name) f.seek(end_of_message - 4) arr_size = Converter.bytes_to_int(f.read(4)) if end_of_message < arr_size: raise Exception(strings.DATA_CORRUPTED) f.seek(end_of_message - arr_size) resut_arr = bytearray(f.read(arr_size)) return resut_arr
def test_backward_compatibility(self): for _ in range(1000): value = random.randint(0, 1000000) self.assertEqual( value, Converter.bytes_to_int(Converter.int_to_bytes(value, 4)))
def _get_pixels_array_start_pos(file_name): """Возвращает начало байтового массива .bmp файла.""" with open(file_name, 'rb') as f: f.seek(10) pixels_array_start = Converter.bytes_to_int(f.read(4)) return pixels_array_start