cifrado de archivos de texto simple basado en una clave

Estoy tratando de implementar una técnica simple de cifrado de archivos de texto y estoy usando el siguiente código para hacerlo. El código no está escrito por mí, simplemente busqué en Google y lo obtuve. La técnica de cifrado parece ser bastante simple, concisa y fácil de implementar. Veo que solo tiene una función que puede hacer el cifrado y el descifrado sobre la marcha. Simplemente pase la clave, hará el truco. Sin embargo, solo quería saber si es posible que compruebe si la clave que pasa el usuario es correcta o no. Actualmente solo cifrará / descifrará el archivo de texto en función de la clave aprobada. Pero no existe un mecanismo para verificar si estamos descifrando con la clave correcta o no. Cualquiera sea la clave que pasemos, se descifrará, pero no será legible. ¿Alguna idea de cómo abordar este problema ..?

procedure TEnDeCrypt.EnDecryptFile(pathin, pathout: string; Chave: Word);
var
  InMS, OutMS: TMemoryStream;
  cnt: Integer;
  C: byte;
begin
  InMS  := TMemoryStream.Create;
  OutMS := TMemoryStream.Create;
  try
    InMS.LoadFromFile(pathin);
    InMS.Position := 0;
    for cnt := 0 to InMS.Size - 1 DO
      begin
        InMS.Read(C, 1);
        C := (C xor not (ord(chave shr cnt)));
        OutMS.Write(C, 1);
      end;
    OutMS.SaveToFile(pathout);
  finally
    InMS.Free;
    OutMS.Free;
  end;
end;

Respuestas a la pregunta(6)

Su respuesta a la pregunta