<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2018-04-05 2:06 GMT+02:00 Mario Lacunza <span dir="ltr"><<a href="mailto:mlacunza@gmail.com" target="_blank">mlacunza@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><div>Hola,<br><br></div>a ver entre #1 y #3 tienes un problema de diseño, si estás haciendo un sistema web el cual corre por ende en el servidor q TU debes controlar para q quieres protegerlo? si lo q tu vendes me imagino será el acceso al mismo.. o lo q pretendes es vender el sistema web server completo para q cualquiera lo instale en SU servidor? esto último de nuevo es la peor forma de llevarlo a cabo. <br></div></div></div></blockquote><div><br></div><div>No necesariamente. Puedes distribuir una manylinux wheel compilada con Cython. El usuario sólo necesitaría instalar unos pocos paquetes, y a correr.<br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div></div>Como te han dicho no hay sistema seguro, sólo demoras el tiempo q a alguien le lleve descompilarlo, para evitarlo, véndele servicios agregados a tu sistema, actualizalo constantemente ofrece soporte especializado, etc hay muchas vias indirectas de evitar q te descompilen el software. <br></div></div></blockquote><div><br></div><div>Tampoco hay que exagerar. Dependiendo de cómo de interesante y caro sea el proyecto, el código C generado por Cython es de por sí extremadamente complejo:<br><br>  {<br>      double __pyx_temp_scalar = 0.0;<br>      {<br>          Py_ssize_t __pyx_temp_extent = __pyx_v_marginal_.shape[0];<br>          Py_ssize_t __pyx_temp_idx;<br>          double *__pyx_temp_pointer = (double *) __pyx_v_marginal_.data;<br>          for (__pyx_temp_idx = 0; __pyx_temp_idx < __pyx_temp_extent; __pyx_temp_idx++) {<br>            *((double *) __pyx_temp_pointer) = __pyx_temp_scalar;<br>            __pyx_temp_pointer += 1;<br>          }<br>      }<br>  }<br><br>Y esto es antes de pasarlo por GCC. ¿Alguien se atreve a descifrarlo? (Solución más abajo)<br><br></div><div>En uno de mis códigos, elegido al azar, 232 líneas de Python se convierten en 29560 de C.<br><br><br></div><div>Hay otras herramientas, pero no las conozco, yo uso Cython por velocidad, pero sé que hay quien lo usa para ofuscar.<br></div><div><br><br><br></div><div>/David.<br></div><div>________<br></div><div>Solución: poner a 0 todos los elementos de un array unidimensional. Exactamente, marginal_[:] = 0<br></div></div></div></div>