¿Cómo ofusco mejor el código de verificación de la licencia de mi producto C #?

¿Cómo puedo ofuscar mejor el código de verificación de la clave de producto de la aplicación C # .net?

¿Es suficiente colocarlo en un “NOMBRE DE CLASE DE SELLADO INTERNO {};” ¿O necesito hacer más?

¡Gracias!

Los modificadores de acceso como internal y sealed no tienen nada que ver con la ofuscación o la seguridad del código, solo le dicen a otras clases cómo interactuar (o no interactuar) con ellos.

Al final del día, no hay nada que puedas hacer para prevenir la piratería. Cualquier cosa creada por un humano puede ser rota por otro. Hay un montón de preguntas sobre SO que tratan con claves de productos, mantener el software seguro, etc. que puede encontrar si usa el mecanismo de búsqueda en la parte superior derecha. Todas las respuestas cubren algunas ideas básicas que cualquier persona con un poco de sentido le dirá:

  1. Solo ponga suficiente esfuerzo en sus medidas antipiratería para hacer que descifrar el software sea menos conveniente que romper la tarjeta de crédito. Si eso es realmente difícil de hacer, está cobrando demasiado por su base de clientes.
  2. Si se enfoca en establecer relaciones positivas con sus clientes en lugar de asumir que son delincuentes, estarán más dispuestos a darle dinero.
  3. La mayoría de los clientes, individuos y especialmente compañías, no tienen ningún interés en abrir sus ensamblajes e intentar descubrir cómo salirse con la suya sin pagarle. Para las personas, no lo pagarían de todos modos, por lo que no está perdiendo una venta; y las empresas no arriesgarían montañas de efectivo en problemas legales por el costo de algunas licencias de software.

Investigue sobre criptografía de clave pública / privada y elíptica y encontrará formas de asegurar su algoritmo de clave, pero solo evitará que se rompa la clave y no se la omita.

Estoy de acuerdo con Rex M, debe considerar el uso de un algoritmo de cifrado asimétrico, como la criptografía de curvas elípticas para evitar keygens. Y si está interesado en una solución comercial, pruebe Ellipter , ya que utiliza curvas elípticas y tiene algunas funciones útiles, como información del producto y datos de vencimiento que se incorporan en las claves de serie generadas.

Rex es correcto, internal sealed class no esconderá nada. Utilice un hash de cifrado unidireccional (por ejemplo, MD5CryptoServiceProvider ) para proteger contraseñas y claves.