Estoy cifrando archivos de texto usando AES256 (sin ninguna razón en particular, eso se puede cambiar fácilmente). Antes de otorgar acceso a un archivo, debo verificar si una parte conoce la clave correcta, pero sin tener necesariamente acceso directo al conjunto de claves del sistema (por ejemplo, un archivo puede moverse entre diferentes máquinas).
Pensé en hacer lo siguiente: antes del cifrado escribo la clave en la primera línea del archivo. Al descifrar, comparo la clave que proporciona un usuario con la primera línea del archivo descifrado utilizando esa misma clave. Si coinciden, significa que el usuario está autorizado y devuelvo el archivo menos la primera línea.
¡Esto solo puede ser menos seguro que no incluir la clave! ¿Pero cuánto?