def _CalculateNTFSTimeHash(self, file_entry):
    """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.
    """
    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()
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.