Hola buenas noches!
Tengo una duda que no estoy muy seguro como resolver. Mi problema consiste en desarrollar un programa en java que corra únicamente en una computadora.
Nuestra idea sería generar una "clave" la primera vez que se usa el programa (supongamos generar un archivo llamado clave.dat).
Desde ese momento, cada vez que la aplicación sea ejecutada, su primera acción será leer el archivo "clave.dat" y verificar si la información obtenida coincide con la información de la computadora que esta ejecutando el programa. Si coincide la ejecución prosigue, en caso contrario caduca.
Se podría generar clave.dat con la información de la placa de red, el código del Sistema Operativo y algún otro valor que se pueda recuperar sobre la computadora.
El inconveniente de este método es que ante una reestructuración del hardware, la clave quedaría invalidada(de todas formas sería un costo aceptable).
Además, ciertos usuarios que usan nuestro producto, ponen mucho empeño en clonar placas y licencias para que computadoras distintas generen el mismo código(sé que es inevitable esto, aunque la idea es que se vuelva trabajoso para ellos intentar "evadir" la seguridad).
No estoy seguro de que sea el método más conveniente, pero es el único que se nos ocurrió. ¿Ustedes que opinan?¿Qué valores del sistema me recomiendan almacenar en clave.dat? ¿Hay otro método?¿Se puede agregar alguna otra validación? Desde ya muchas gracias!!
P.D: Tengan en cuenta que el pr