code: def _CalculateNTFSTimeHash(self, file_entry):
      
      date_time_values = []
  
      access_time = getattr(file_entry, 'access_time', None)
      if access_time:
        date_time_string = access_time.CopyToDateTimeString()
        date_time_values.append('atime:{0:s}'.format(date_time_string))
  
      creation_time = getattr(file_entry, 'creation_time', None)
      if creation_time:
        date_time_string = creation_time.CopyToDateTimeString()
        date_time_values.append('crtime:{0:s}'.format(date_time_string))
  
      modification_time = getattr(file_entry, 'modification_time', None)
      if modification_time:
        date_time_string = modification_time.CopyToDateTimeString()
        date_time_values.append('mtime:{0:s}'.format(date_time_string))
  
      # file_entry.change_time is an alias of file_entry.entry_modification_time.
      change_time = getattr(file_entry, 'change_time', None)
      if change_time:
        date_time_string = change_time.CopyToDateTimeString()
        date_time_values.append('ctime:{0:s}'.format(date_time_string))
  
      date_time_values = ''.join(date_time_values)
      date_time_values = date_time_values.encode('ascii')
  
      hash_value = hashlib.md5()
      hash_value.update(date_time_values)
      return hash_value.hexdigest()
docs: Calculates an MD5 from the date and time value of a NTFS file entry.
  
      Args:
        file_entry (dfvfs.FileEntry): file entry.
  
      Returns:
        str: hexadecimal representation of the MD5 hash value of the date and
            time values of the file entry.