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;