Exemple #1
0
    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
Exemple #2
0
 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)))
Exemple #3
0
 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