Quiero crear una aplicación de escritorio y poder publicar claves de producto o números de serie. Antes de que el usuario pueda usar la aplicación, se le pedirá que ingrese la clave de producto / número de serie.

Similar a Microsoft Office cuando proporcionan claves como XXXX-XXXX-XXXX-XXXX

La idea que tengo es vender la aplicación basada en licencias y proporcionar una clave de producto para cada dispositivo parece más profesional que las cuentas (nombres de usuario y contraseñas).

Entonces mis preguntas son:

1) ¿Es posible lograr esto con electron?

2) ¿Me puede aconsejar si debo buscar números de serie (si es factible) o cuentas? o hay mejores opciones?

3) si respondiste la segunda pregunta. Por favor, indique por qué?

12
Behrouz Riahi 22 jun. 2017 a las 22:53

3 respuestas

La mejor respuesta

Para su primera pregunta, , definitivamente puede implementar claves de producto para licenciar una aplicación Electron (lo he hecho algunas veces). Y para su segunda pregunta, le recomiendo que tenga cuentas de usuario con licencias asociadas, p. el usuario 2 puede hacer X e Y, mientras que el usuario 2 solo puede hacer X.

Entonces, ¿por qué? ¿Qué ventaja tiene ofrecer cuentas de usuario?

En primer lugar, elimina la necesidad de que usted y sus clientes realicen un seguimiento de las claves de licencia (una gran molestia, especialmente cuando las pierden), ya que todo se puede manejar detrás de escena dentro de su cuenta de usuario. Todo lo que tienen que hacer es iniciar sesión (¡como están acostumbrados!) Y luego puede consultar todas las licencias asociadas con su cuenta de usuario.

Y quizás lo más importante, al implementar cuentas de usuario, puede ofrecer a sus clientes la activación de la licencia de autoservicio. es decir, dado que todas sus licencias (tenga en cuenta la pluralidad, es decir, el potencial para múltiples licencias por usuario) ahora están asociadas con una sola cuenta de usuario, podría solicitarles que, por ejemplo, compre una nueva licencia cuando inicie su aplicación en una máquina no reconocida, o ofrezca fácilmente "complementos" de productos para funciones adicionales.

Y en caso de que no estuviera particularmente interesado en escribir su propio sistema de licencias, soy el fundador de una API de licencias de software llamada Keygen, que puede ayudarlo a ponerse en funcionamiento rápidamente sin tener que alojar y escribir su propio servidor de licencias. Creé Keygen con los desarrolladores independientes en mente, especialmente los desarrolladores que crean aplicaciones de escritorio. Originalmente creé el servicio después de escribir mi primera aplicación Electron y darme cuenta de que (sorprendentemente) no existía tal servicio en ese momento, lo que fue bastante frustrante para mí. Así que escribí uno para mí y para otros desarrolladores.

Dado que Keygen es solo una API (es decir, no hay software que necesite empaquetar con su aplicación), Keygen se puede usar en cualquier lenguaje de programación (por lo que no estamos limitados a JavaScript aquí). En su forma más simple, p. sin cuentas de usuario, solo claves de licencia, validar una clave de licencia con Keygen es tan fácil como tocar un único punto final de API,

curl -X POST https://api.keygen.sh/v1/accounts/dc7ac1f74ce0/licenses/actions/validate-key \
  -H 'Content-Type: application/vnd.api+json' \
  -H 'Accept: application/vnd.api+json' \
  -d '{
        "meta": {
          "key": "B8A5-91D7-CB9A-DAE4-4F6E-1128"
        }
      }'

Y como mencioné anteriormente, además de la administración de licencias, Keygen también ofrece puntos finales API para administrar cuentas de usuario (lo cual, una vez más, recomiendo, ya que es una experiencia de usuario mucho mejor), lo que le permite asociar licencias con sus usuarios, así como rastrear las máquinas. usan su aplicación, lo cual es muy útil si desea implementar múltiples licencias por usuario (por ejemplo, licencias de funciones), licencias bloqueadas por máquina o si solo desea saber cuántas máquinas tiene cada usuario.

Espero que responda a su pregunta y le brinde algunas ideas. Estaremos encantados de responder cualquier otra pregunta que tenga, ya que he implementado licencias algunas veces para aplicaciones Electron. :)

11
ezekg 5 jul. 2017 a las 17:59

Existen muchos servicios que lo ayudan a agregar licencias de software basadas en claves de licencia a su aplicación. Y para asegurarse de que sus clientes no reutilicen la clave, necesitaría un algoritmo de huellas dactilares de dispositivo fuerte.

Puede probar Cryptlex. Ofrece una solución de licencia muy robusta con algo avanzado de huellas digitales de dispositivos. Puede consultar el Node.js ejemplo en Github para agregar licencias a su aplicación electrónica.

1
adnan kamili 4 may. 2019 a las 07:48
  1. SÍ, pero con respecto al mecanismo de registro del software, ES DURO y también necesita muchas pruebas.
  2. Si el 90% de sus usuarios tienen acceso a Internet, definitivamente debe ir con las cuentas de usuario o con algo de Plug and Play de OAUTH 2.0 (inicie sesión con Facebook / gmail / lo que sea)
  3. Construí una arquitectura de licencia de software desde cero usando crypto y el módulo fs, ¡y fue todo un viaje (año)!

No es recomendable hacer un buen mecanismo de registro para su software desde cero, el electrón lo hace más difícil porque el código fuente está relativamente expuesto.

Dicho esto, si realmente quieres ir por ese camino, bcrypt es bueno en esto (hashs), necesitas un identificador de usuario único para hash, también necesitas algún tipo de persistencia (preferiblemente un archivo) donde puedas almacenar la licencia de usuario, y necesita ocultar la sal que está utilizando para el hash, ya sea mediante el hash ... o almacenando pequeños fragmentos en archivos separados.

Esto será un buen punto de partida para la concesión de licencias, pero está lejos de estar completamente protegido.

Espero que ayude !

3
Sam 31 jul. 2017 a las 13:00