La semana pasada, tuve que crear una pequeña interfaz gráfica de usuario para la tarea. Ninguno de mis compañeros de escuela lo hizo. Me han robado uno de donde teníamos que subirlo y luego lo han vuelto a subir como suyo. Cuando le dije a mi maestro que era todo mi trabajo, no me creyó.
Entonces pensé en poner un método inútil o algo dentro con una prueba de que lo codifiqué. Pensé en el cifrado. Mi mejor idea hasta ahora:
String key = ("ZGV2ZWxvcGVkIGJ5IFdhckdvZE5U"); //My proof in base64
¿Puedes pensar en otras formas mejores?
encryption
WarGodNT
fuente
fuente
Respuestas:
Tuve el mismo problema que tú hace mucho tiempo. Teníamos máquinas con Windows 2000 y cargamos archivos en una carpeta de red Novel que todos podían ver. Usé varios trucos para vencer incluso a los mejores ladrones: marca de agua en espacios en blanco; marca de agua de metadatos; personajes inusuales; sello de tiempo confiable; modus operandi. Aquí los tienes en orden.
Marca de agua de espacios en blanco:
Esta es mi contribución original a las marcas de agua. Necesitaba una marca de agua invisible que funcionara en archivos de texto. El truco que se me ocurrió fue poner un patrón específico de espacios en blanco entre las declaraciones de programación (o párrafos). El archivo les parecía el mismo: algunas declaraciones de programación y saltos de línea. Seleccionar el texto con cuidado mostraría los espacios en blanco. Cada línea vacía contendría una cierta cantidad de espacios que obviamente no son aleatorios ni accidentales. (p. ej., 17) En la práctica, este método funcionó bien porque no pudieron averiguar qué estaba incrustando en los documentos.
Marca de agua de metadatos
Aquí es donde cambia los metadatos del archivo para que contengan información. Puede incrustar su nombre, un hash, etc. en partes invisibles de un archivo, especialmente EXE. En los días del NT, los flujos de datos alternativos eran populares.
Personajes inusuales
Lanzaré este solo por diversión. Un viejo truco de suplantación de IRC consistía en crear un nombre con letras que se parecieran al nombre de otra persona. Puede usar esto en marcas de agua. El mapa de caracteres en Windows le dará muchos caracteres inusuales que se parecen a, pero no lo son, una letra o número que podría usar en su código fuente. Estos que aparecen en un lugar específico en el trabajo de otra persona no pueden ser accidentales.
Sellado de tiempo de confianza
En pocas palabras, envía un archivo (o su hash) a un tercero que luego le agrega una marca de tiempo y lo firma con una clave privada. Cualquiera que desee una prueba de cuándo creó un documento puede acudir al tercero de confianza, a menudo un sitio web, para verificar su prueba de la hora de creación. Estos se han utilizado en casos judiciales para disputas de propiedad intelectual, por lo que son una forma de prueba muy sólida. Son la forma estándar de lograr la prueba que busca. (Incluí los otros primero porque son fáciles, son más divertidos y probablemente funcionarán).
Este artículo de Wikipedia puede ayudar a su instructor a comprender su evidencia y la sección de enlaces externos tiene muchos proveedores, incluidos los gratuitos. Ejecuté archivos de prueba a través de archivos gratuitos durante unos días antes de usarlos para algo importante.
Modus operandi
Entonces, hiciste algo y ahora tienes pruebas, ¿verdad? No, los estudiantes aún pueden decir que les robó la idea o alguna otra tontería. Mi solución para esto fue, en privado, establecer uno o más de mis métodos con mi instructor. Le digo al instructor que busque el espacio en blanco, busque ciertos símbolos, etc. pero que nunca le diga a los demás cuál es la marca de agua. Si el instructor acepta mantener en secreto sus técnicas simples, es probable que sigan funcionando bien. Si no, siempre hay una marca de tiempo confiable. ;)
fuente
Si sus compañeros de clase robaron su código del sitio de carga, cifraría su tarea y enviaría la clave por correo electrónico al maestro. Puede hacer esto con PGP si quiere que sea complicado, o algo tan simple como un archivo Zip con una contraseña.
EDITAR: PGP le permitiría encriptar / firmar sin revelar su clave, pero no puede superar la simple simplicidad de un archivo Zip con una contraseña, así que solo elija una nueva clave en cada tarea asignada. Belleza en la sencillez :)
fuente
Si le está dando el código fuente al profesor, simplemente agregue
serialVersionUID
a uno de los archivos de su clase que sea una versión encriptada de su nombre. Puedes descifrarlo tú mismo para el profesor.Eso no significa nada para los demás, solo para ti. Puede decir que es un código generado, si lo están robando, probablemente no se molestará en modificarlo en absoluto.
Si quieres hacerlo de una manera elegante, puedes usar este truco si encuentras la semilla aleatoria que produce tu nombre. :) Ese sería su número entonces, y dondequiera que aparezca eso probaría que fue usted quien hizo ese código.
fuente
//written by WarGodNT
por//Written by ImaCheata
.) También es poco probable que muchos de ellos sepan que el svUID podría destruirlos. Incluso si algunos de ellos son tan inteligentes; si la mayor parte de la clase está haciendo trampa, es casi seguro que algunos serán atrapados. Como mínimo, eso debería ser suficiente para convencer al profesor de que no apruebe su proceso.Esto sucedió con un par de mis estudiantes que vivían en el mismo departamento. Uno robó el código fuente de un disco dejado en un cajón del escritorio.
El ladrón modificó ligeramente la fuente robada, para que no fuera obvio. De todos modos, noté la similitud del código y examiné la fuente en un editor. Algunas de las líneas tenían espacios adicionales en los extremos. La fuente de cada alumno tenía el mismo número de espacios adicionales.
Puede aprovechar esto para codificar información sin hacerla visible. Puede codificar sus iniciales o su identificación de estudiante al final de algunas líneas, con espacios.
Es probable que un ladrón realice cambios estéticos en el código visible, pero puede perder los caracteres no visibles.
EDITAR:
Pensando en esto un poco más, podría usar espacios y tabulaciones como dits y dahs en código Morse, y poner su nombre al final de varias líneas. Un ladrón podría quitar, reordenar o volver a escribir algunas líneas sin destruir su identificación.
EDITAR 2:
"Esteganografía de espacios en blanco" es el término para ocultar mensajes en espacios en blanco. Al buscarlo en Google, se revela esta implementación de código abierto que se remonta a los años 90, utilizando la codificación Huffman en lugar del código Morse.
fuente
Me parece un problema de administración de TI. Cada estudiante debe tener su propia área de carga a la que no puedan acceder otros estudiantes.
El profesor estaría en un nivel superior, pudiendo acceder a la carpeta de carga de cada alumno. Si esto no es posible, vaya con la respuesta @exabrial, ya que es la solución más simple.
fuente
Lo mejor que puede hacer es simplemente comprimir el código fuente con una contraseña y enviarla por correo electrónico al profesor.
Problema resuelto.
fuente
Utilice un sistema de control de versiones distribuido (= independiente) , como git . También podría ser útil.
Un historial de versiones con su nombre y fechas puede ser suficientemente convincente.
fuente
git filter-branch
fue creado para cosas tan locas como esa, que no deberían ser fáciles¿Qué fue robado?
La fuente ? Puede poner cadenas aleatorias en él (pero se puede cambiar). También puede intentar agregar un comportamiento especial que solo usted conoce (una pulsación de tecla especial cambiará una fila de color), luego puede preguntarle al maestro "¿los demás conocen este combo especial?". La mejor manera será bloquear el programa si no hay un archivo inútil vacío en el archivo después de 5 minutos de actividad, sus compañeros de escuela serán demasiado perezosos para esperar esta cantidad de tiempo.
¿El binario? Bastará con comparar la suma de comprobación de cada .class (tus compañeros de escuela son demasiado perezosos para reescribir los archivos de la clase)
fuente
Simplemente publique su solución en el último minuto. Esto no le dará tiempo a nadie para copiarlo.
Y envíe un comentario al administrador para no permitir que los estudiantes vean las tareas de otros estudiantes.
fuente
Si carga el archivo en un .zip con cifrado de contraseña, cualquiera puede descifrar la contraseña descargando el archivo .zip y hacer que su CPU ejecute un millón de consultas en él si es un gran ladrón de trampas. Desafortunadamente, algunos lo son y es fácil de hacer.
Los otros estudiantes pueden ver su fuente en el servidor compartido. El profesor realmente debería darte tu propio directorio encriptado con contraseña para subir. Esto se puede hacer fácilmente agregando subdominios. Pero quizás el profesor le permita cargar los archivos a su propio servidor para que él pueda acceder a ellos allí.
También es posible ofuscar el script para que tenga un document.write ('Esta página fue escrita por xxxxx'), lo que obliga a cualquiera que copie su trabajo a no poder eliminar el crédito a menos que primero lo descifre. Pero la respuesta real es que su escuela necesita darle a cada uno de sus estudiantes sus propios directorios protegidos con contraseña.
fuente
En mi caso, mis profesores vinieron con un mejor enfoque. Las preguntas que proporcionaron tienen algo que ver con nuestro número de registro. Ex:
Entonces, las respuestas o el enfoque de la solución son relativamente diferentes de cada estudiante. Esto hace que la necesidad de todos los estudiantes tenga que hacer sus deberes por su cuenta, o al menos saber cómo hackear el enfoque con su propio registro [it puede ser más difícil que aprender la lesión;)].
fuente