Ya esta tocando varios puntos.
Cita: porque igualmente si pongo encriptada la contraseña en el programa al descompilarlo si conocen mi metodo de encriptacion igualmente podrían desencriptarlo.
No se recomienda poner en ningun caso la cadena de conexion dentro del programa, porque si tienes que cambiarla te tocaria generar una nueva compilacion de la misma.
Cita: pero no me vale este sistema porque para acceder a MySQL utilizo la biblioteca que hay para .NET, y la opción de desencriptar una vez llega al servidor no se si existe opción de hacerlo.
Aca si me perdi, por tambien utiliso la biblioteca oficial de
MySQLConnector y no tengo lio con esto.
Cita: Mi idea era algún sistema de un solo paso,
Si lo haces con un sistema de un paso, como vas a leer luego la conexion?, cuando la leas vas a ver algo como esto:
Cifrado en SHA512
Código:
fJNePGOAOzMe0jZ3ZPPa62Q0LMiZyptpFZ++IG2Wtsfu838cMVkUDK/XLL5W8xkeDoYw8HrqyXAkctmOdXBuJg==
Esa linea es un cifrado de una sola via, si no la puedo invertir, como voy obtener una cadena de conexion valida al servidor?
Basicamente la idea de lo que tu necesitas se resume asi:
1. En el archivo de configuracion va la cadena cifrada
2. en la aplicacion, lees la cadena de conexion, inviertas el cifrado y lo asignas a la
MySQLConnection con la cual vas a trabajar.
3. La idea de ofuscar la aplicacion no es mala, yo tambien lo hago.
4. Mis claves de cifrado (el key que cifra e invierte el cifrado) son GUID, asi que son un poco mas complejas para que las adivinen, algo asi como:
{54729436-D327-437c-B42E-E1616625FB9F}
Y esa misma clave se usa para cifrar y para invertir.
Saludos