Estoy escribiendo un cliente (de terceros) para un juego, y una característica que me gustaría que tuviera este cliente es la capacidad de iniciar sesión automáticamente en el juego usando las credenciales ingresadas anteriormente. Las credenciales simplemente consisten en un nombre de usuario alfanumérico y una contraseña. Una forma ingenua de implementar esto es almacenar un archivo que contiene el nombre de usuario y la contraseña en la máquina local. Sin embargo, esto no es seguro por varias razones obvias. Una en particular es que este cliente admite complementos que otros desarrolladores pueden escribir. Esto abre la puerta para que un desarrollador malintencionado lea el contenido del archivo, comprometiendo efectivamente la cuenta.
También he considerado la idea de utilizar algún cifrado para cifrar (y descifrar) la contraseña, pero no estaba seguro de cuál era una forma segura de inicializar el cifrado. Una idea que tuve fue crear un archivo generado aleatoriamente y usarlo para inicializar el cifrado y luego usar ese cifrado para acceder a la contraseña. Sin embargo, una vez más, un complemento malintencionado podría simplemente leer ese archivo generado aleatoriamente, agregar su propio cifrado y luego descifrar el contenido del archivo de contraseña.
¿Existe una forma segura de almacenar y recuperar la contraseña de un usuario en la máquina local? Supongamos que un desarrollador malintencionado tiene acceso total al código fuente de la aplicación y sabe exactamente qué algoritmos y técnicas se están utilizando.
Editar: No tengo acceso al servidor al que se conecta el cliente. Mi aplicación es básicamente una "envoltura" para el cliente oficial del juego que agrega funcionalidad adicional.