Пример #1
0
 def test_hash_code(self):
     self.assertEqual("3e25960a79dbc69b674cd4ec67a72c62",
                      Crypter.get_MD5_hash("Hello world"))
     self.assertEqual("d41d8cd98f00b204e9800998ecf8427e",
                      Crypter.get_MD5_hash(""))
     self.assertEqual("aaccedee5cc97822658304e92121bd3f",
                      Crypter.get_MD5_hash("уекрекыонекуцкнелеунл"))
Пример #2
0
 def _convert_text_to_special_byte_arr(input_text):
     """Конвертирует текст в специальный байтовый массив,
     который впоследствии будет вставлен в .bmp файл."""
     encoded_text = Crypter.encode_text(input_text).encode("UTF-8")
     text_hashcode = Crypter.get_MD5_hash(input_text).encode("UTF-8")
     result_arr_length = Converter.int_to_bytes(
         len(encoded_text) + len(text_hashcode) + 4, 4)
     return encoded_text + text_hashcode + result_arr_length
Пример #3
0
 def _check_message_availability(special_byte_arr):
     """Проверяет массив байт на наличие сообщения и метаданных."""
     try:
         hash_from_byte_arr = special_byte_arr[-36:-4].decode("UTF-8")
         encoded_text = special_byte_arr[:-36].decode("UTF-8")
         decoded_text = Crypter.decode_text(encoded_text)
         hash_of_decoded_text = Crypter.get_MD5_hash(decoded_text)
         return hash_of_decoded_text == hash_from_byte_arr
     except UnicodeDecodeError:
         raise Exception(strings.DATA_CORRUPTED)