Hola David, Pues mira, me hubiera atrevido, pero pusiste la solución así que no tiene mucho mérito. Para "descifrar" el código que pusiste sólo hace falta tener algo de experiencia programando en C. Los nombres de las variables hacen el código más prolijo y puede asustar de entrada, pero nada más.
Una cosa: la seguridad por ocultación no es seguridad. Simplemente se está subiendo el listón. Particularmente en casos como Cython, que como generador que es, va a producir código a base de plantillas. Teniendo acceso al código fuente se podría incluso (potencialmente) reconstruir el código original con bastante fidelidad. Distribuir un binario cambia el asunto, claro, pero abre la puerta a otro tipo de problemas. Por último, lo que sugería el que hizo la pregunta original (programar algo completamente desde 0, salvo el servidor web) es una locura. Hacer una app web moderna de forma eficiente suele requerir una inmensa cantidad de código de terceros. Cocinarse todo uno mismo significa reinventar no ya la rueda, sino el coche entero. Me cansa sólo pensar la cantidad de horas que se pueden ir en un simple motor de plantillas (programarlo desde 0, depurarlo, mantenerlo...). Saludos, Ricardo 2018-04-04 14:34 GMT-10:00 Daπid <davidmen...@gmail.com>: > > > 2018-04-05 2:06 GMT+02:00 Mario Lacunza <mlacu...@gmail.com>: > >> Hola, >> >> 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. >> > > No necesariamente. Puedes distribuir una manylinux wheel compilada con > Cython. El usuario sólo necesitaría instalar unos pocos paquetes, y a > correr. > > 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. >> > > 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: > > { > double __pyx_temp_scalar = 0.0; > { > Py_ssize_t __pyx_temp_extent = __pyx_v_marginal_.shape[0]; > Py_ssize_t __pyx_temp_idx; > double *__pyx_temp_pointer = (double *) __pyx_v_marginal_.data; > for (__pyx_temp_idx = 0; __pyx_temp_idx < __pyx_temp_extent; > __pyx_temp_idx++) { > *((double *) __pyx_temp_pointer) = __pyx_temp_scalar; > __pyx_temp_pointer += 1; > } > } > } > > Y esto es antes de pasarlo por GCC. ¿Alguien se atreve a descifrarlo? > (Solución más abajo) > > En uno de mis códigos, elegido al azar, 232 líneas de Python se convierten > en 29560 de C. > > > Hay otras herramientas, pero no las conozco, yo uso Cython por velocidad, > pero sé que hay quien lo usa para ofuscar. > > > > /David. > ________ > Solución: poner a 0 todos los elementos de un array unidimensional. > Exactamente, marginal_[:] = 0 > > _______________________________________________ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > >
_______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es