Protéger Le Code Source De Java D'Accéder
La semaine dernière, j'ai dû créer un peu de GUI pour les devoirs.
Aucun de mes camarades d'école l'a fait. Ils ont volé mon d'où nous avons eu à le télécharger et ensuite ils téléchargés à nouveau que la leur. Quand j'ai dit à mon professeur, c'était tout mon travail, il ne me croyait pas.
J'ai donc pensé à mettre un inutile méthode ou quelque chose à l'intérieur avec une preuve que j'ai codé il. J'ai pensé à de chiffrement. Ma meilleure idée jusqu'à maintenant:
String key = ("ZGV2ZWxvcGVkIGJ5IFdhckdvZE5U"); //My proof in base64
Pouvez-vous penser à d'autres façons de faire?
- Développer un unique style de codage, si elle est copiée par d'autres, vous remarquerez, et votre professeur trop... je l'espère
- N'ai pas les fichiers ont un horodatage dans le site de téléchargement?
- Êtes-vous en disant qu'ils pourraient télécharger votre code à partir d'où vous avez téléchargé? Cela semble fou. Vous devriez vous interroger sur l'enseignant des méthodes. De préférence par en parler à son patron car il/elle semble être légèrement déraisonnable.
- Vous pouvez vous inscrire votre pot et donner la clé de votre tuteur à vérifier c'est la vôtre. Edit: oh, quelqu'un a déjà répondu à cette! 🙂
- Epic fail de l'un de vos devoirs et de laisser l'ensemble de la classe d'échouer.
- J'ai eu le même problème en tant que professeur dans le cours php: le répertoire public_html doit être lisible par apache, donc, c'était aussi lisible par les autres élèves...
- Je vais parler avec l'enseignant abaut un beter méthode. pas d'horodateurs rien de son comme je l'ai copié dans un dossier qui est acessible à tous
- Semble que le professeur est un débutant ainsi...
- Plusieurs réflexions: 1) Base64 est un encodage, pas de chiffrement. 2) Même si vous placez une clé de la façon dont vous l'avez suggéré, ce qui les empêchent de le remplacer par leur propre clé, ou même simplement de les supprimer? 3) Le vrai problème semble être le système d'assignation qui permet de copier&coller. Évidemment, il ne répond pas à la "sécurité de la contrainte" (peut-être pas le droit de lingo, je ne suis pas un expert en sécurité) qui peut être formulé comme "les Étudiants ne devraient pas être en mesure d'accéder à toutes les autres solutions". Savez-vous comment ils ont volé?
- Il suffit de télécharger votre solution dans la dernière minute de la date limite, vos "collègues" ne sera pas en mesure de copier et coller votre solution rapide et reupload il.
- Ont-ils copie 1:1, ou ont-ils copier et de le modifier? Dans ce dernier cas, le meilleur moyen serait de faire des algorithmes trop compliqué. Ou, téléchargez subtilement défectueux "pot de miel" peu de temps avant la date limite, et le remplacer avec vous la bonne solution plus tard.
- Faire des algorithmes, trop compliquées, souvent nocifs pour votre propre grade.
- Ils ont fait le Copier près de 1:1, l'un avec le pot de miel, c'est le génie bah je vais les attraper tous 🙂
- Si vous avez besoin d'utiliser des astuces, juste faire vos devoirs, quelque chose va mal dans cette classe.
- La seule chose sensée à faire dans cette situation est d'essayer de corriger le problème en parler à l'enseignant sur la façon de télécharger vos devoirs. De le télécharger dans une zone où vous pouvez télécharger tous les autres soumissions est tout simplement stupide - je ne suis pas sûr qu'un enseignant qui pense que l'approche est bonne, faut vraiment être enseignant!
- Il suffit d'exécuter votre code grâce à un obfuscateur de code. Ont il obscurcir les choses au maximum. Que devrait faire moche. Si cela ne vous rend pas heureux, écrire votre propre classloader personnalisé qui charge chiffrée de vos classes (voir ici: javaworld.com/javaqa/2003-05/01-qa-0509-jcrypt.html?page=1). Vous pouvez même en faire stocker les sources dans les fichiers cryptés, si vous faites votre propre format. Puis donnez-le à votre enseignant de la clé par e-mail. Si vous le faites, je pense que vous pouvez commencer à sauter des classes. Sur une base régulière. 🙂
- Si vous savez que vous/ils sont tous à l'aide de Windows, vous pouvez simplement changer le saut de ligne char de vos sources pour un Unix. C'est facile à vérifier et que personne ne remarquera.
- Qui ne fonctionne pas trop bien si l'OP veut un crédit supplémentaire sur son travail.
- Si vous ne la signature de la preuve et la chose alors j'espère que vous allez revenir ici et de nous informer sur la façon dont il s'est avéré! Je serais ravi d'entendre à quel point ils ont obtenu brûlé. La tricherie est assez mauvaise, mais en fait voler un compagnon de travail de l'étudiant et de prendre le crédit pour il tout bas. Combien de inutile trou du cul vous avez à faire quelque chose comme ça?? Pourquoi sont-ils même en train d'étudier cette si ils ne vont pas faire le travail? Quel genre de carrière ils s'attendent à développer que les programmeurs s'ils ne peuvent même pas faire leurs devoirs eux-mêmes? Désolé de m'agacé, il a juste ne m'irrite quand les gens sont si égoïstes :/
- malheureusement je n'ai pas de devoirs pour tommorow couse j'ai un java examen. Mais la prochaine fois que nous avons à télécharger notre source, je vais en choisir un de la super idées que vous les gars m'a donné et piège à toutes:). Et après je reviens en arrière et de vous raconter l'histoire.Je dois dire que je suis nouveau ici DONC, mais c'est une grande Communauté. Jamais enseigné tellement Crative et des idées utiles réunis GRÂCE.!
- Si jamais vous comprendre cela, ne dites pas à Mojang.
- peut-être que le professeur n'est pas honnête. nous avons eu un professeur de langue qui nous permettrait de tricher si elle n'a pas l'air mauvais comme elle l'était.
- Si vous l'avez copié régulière d'un répertoire, il est très probable qu'il existe des horodateurs.
- demandez à votre enseignant de demander aux élèves au sujet du code, après tout, les chances sont que vous le comprenez et ils n'en ont pas, non?
- MDR je l'aurais fait!!!
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème que vous il y a longtemps. Nous avons eu des ordinateurs Windows 2000 et téléchargé des fichiers sur un réseau Roman de dossier que tout le monde pouvait voir. J'ai utilisé plusieurs astuces pour battre même le meilleur des voleurs: les espaces de filigrane; des métadonnées de filigrane; des caractères inhabituels; confiance horodatage; modus operandi. Voici dans l'ordre.
Espaces filigrane:
C'est ma contribution originale à filigrane. J'ai besoin d'un filigrane invisible qui a travaillé dans des fichiers texte. L'astuce que j'ai trouvé a été de mettre dans un modèle spécifique de blanc entre les instructions de programmation (ou paragraphes). Le fichier regardé la même chose pour eux: certains des instructions de programmation et les sauts de ligne. En sélectionnant soigneusement le texte serait montrer l'espace. Chaque ligne vide contient un certain nombre de places qui n'est évidemment pas le fruit du hasard ou accidentelle. (par exemple 17), Dans la pratique, cette méthode a fait le travail pour moi parce qu'ils ne pouvaient pas comprendre ce que j'étais en intégrant dans les documents.
Métadonnées filigrane
C'est là que vous modifiez le fichier de métadonnées pour contenir de l'information. Vous pouvez intégrer votre nom, une table de hachage, etc. dans l'invisible des parties d'un fichier, en particulier EXE. Dans le NT jours, des Flux de Données alternatifs ont été très populaires.
Des caractères inhabituels
Je vais jeter celui-ci dans juste pour le plaisir. Un vieux IRC usurpation d'identité truc, c'était de se faire un nom avec des lettres qui ressemblent au nom d'une autre personne. Vous pouvez l'utiliser dans le filigrane. La table de Caractères de Windows vous donnera beaucoup de personnages insolites qui ressemblent, mais ne le sont pas, une lettre ou un numéro que vous pouvez utiliser dans votre code source. Ces montrant dans un endroit précis de quelqu'un d'autre travail ne peut pas être accidentelle.
De Confiance Horodatage
En un mot, vous envoyez un fichier (ou hash) à un tiers, qui ajoute ensuite un horodatage et des signes avec une clé privée. Toute personne souhaitant preuve d'lorsque vous avez créé un document peut aller à la tierce partie de confiance, souvent un site web, afin de vérifier la preuve de votre temps de création. Ces données ont été utilisées dans les affaires de la cour pour les litiges de propriété intellectuelle de sorte qu'ils sont très solides éléments de preuve. Ils sont le moyen standard pour accomplir la preuve que vous êtes à la recherche d'. (J'ai inclus les autres en premier b/c ils sont faciles, ils sont plus de plaisir et fonctionnera probablement.)
Cet article de Wikipédia pourrait aider votre instructeur de comprendre vos preuves et les liens externes de l'article a beaucoup de fournisseurs, y compris celles qui sont libres. J'avais lancer le test des fichiers par ceux qui sont gratuits pour quelques jours avant de les utiliser pour quelque chose d'important.
Modus operandi
Donc, vous avez fait quelque chose et vous avez maintenant la preuve de droite? Non, les étudiants peuvent toujours dire que vous avez volé l'idée à partir d'eux, ou certains autres non-sens. Mon fix pour ce est de, dans le privé, établir un ou plusieurs de mes méthodes avec mon instructeur. Je dis à l'instructeur de regarder pour les espaces, regardez pour certains symboles, etc. mais ne jamais dire aux autres ce que le filigrane était. Si l'instructeur sera d'accord pour garder vos techniques simples secret, ils vont probablement continuer à fonctionner correctement. Sinon, il y a toujours la confiance de l'horodatage. 😉
sercive
au lieu deservice
? Belle idée, prouve que la source commune, mais ne prouve pas que vous êtes à l'origine. De toute façon, assez bon pour un filigrane.Si vos camarades de classe a volé votre code à partir du site de téléchargement, je voudrais crypter vos devoirs et de e-mail la clé de l'enseignant. Vous pouvez faire cela avec PGP si vous voulez être compliqué, ou quelque chose d'aussi simple qu'un fichier Zip avec un mot de passe.
EDIT:
PGP vous permettra de chiffrer/signer sans révéler votre clé, mais vous ne pouvez pas battre le cisaillement de la simplicité d'un fichier Zip avec un mot de passe, il suffit de choisir une nouvelle clé à chaque devoir. La beauté dans la simplicité 🙂
Si vous donnez le code source de l'enseignant, puis il suffit d'ajouter un
serialVersionUID
à l'un de vos fichiers de classe, qui est une version cryptée de votre nom. Vous pouvez décrypter à l'enseignant de vous-même.Qui ne veut rien dire pour les autres, juste pour vous. Vous pouvez dire que c'est un code généré, si ils sont voler, ne sera probablement pas pris la peine de modifier à tout.
Si vous voulez le faire dans un style élégant, vous pouvez utiliser cette astuce, si vous trouvez la graine aléatoire qui produit de votre nom. 🙂 Ce serait votre numéro de alors, et où il semble que de prouver qu'il était vous qui fait que le code.
//written by WarGodNT
avec//Written by ImaCheata
.) Il est également peu probable que beaucoup d'entre eux savent même pas la svUID pourrait éclater entre eux. Même si quelques-uns d'entre eux sont intelligents; si la plupart de la classe est de tricher un peu il est presque certain de se faire prendre. À un minimum qui devrait être suffisant pour les convaincre de l'enseignant à unfubar son processus.serialVersionUID
est mis en toutes les classes, de sorte que, si trace est laissé là, le voleur s'il est pris.Ce qui s'est passé avec une paire de mes élèves qui ont vécu dans le même appartement. On a volé le code source à partir d'un disque à gauche dans un tiroir de bureau.
Le voleur a légèrement modifié l'volé de la source, de sorte qu'il ne serait pas évident. J'ai remarqué la similitude du code de toute façon, et a examiné la source dans un éditeur. Certaines lignes ont des espaces supplémentaires à la fin. Chaque élève de la source, a le même nombre de places supplémentaires.
Vous pourrait exploiter ceci pour encoder de l'information sans qu'il soit visible. Vous pouvez encoder vos initiales ou votre carte d'étudiant à la fin de certaines lignes, avec des espaces.
Un voleur sera probablement faire des changements cosmétiques pour le code visible, mais peut manquer le non-caractères visibles.
EDIT:
De penser à ce sujet un peu plus, vous pouvez utiliser des espaces et des tabulations comme Morse code-dits et dahs, et de mettre votre nom à la fin de plusieurs lignes. Un voleur pourrait supprimer, réorganiser ou retaper certaines lignes sans détruire votre identification.
EDIT 2:
"Espaces stéganographie" est le terme pour cacher des messages dans l'espace. Googler il révèle ce open-source de la mise en œuvre datant des années '90, en utilisant le codage Huffman à la place du code Morse.
Il semble comme une administration informatique de problème pour moi. Chaque élève doit disposer de leur propre espace de dépôt qui ne peut pas accessibles par les autres élèves.
L'enseignant serait un plus haut niveau, de pouvoir accéder à chaque étudiant le dossier de téléchargement. Si ce n'est pas possible d'aller avec @exabrial réponse qui est la plus simple solution.
La meilleure chose que vous pouvez faire est de simplement le zip le code source avec un mot de passe et e-mail le mot de passe de l'enseignant.
Le problème est résolu.
Utiliser un système distribué (=autonome) système de contrôle de version, comme git. Pourrait être utile aussi.
Une version de l'histoire avec votre nom et les dates peuvent être suffisamment convaincante.
filter-branch
conserve l'originalcommit
serait presque suffisant. (2) Il serait sans doute le premier. (3) Il montre un développement historique. (4) Il est plus sûr que la stéganographie (comme les espaces ou un commentaire où le initals de mots formulaire ceux nom). (5) le Piratage serait prendre d'effort et de temps aussi. (6) Il n'est pas infaillible.Ce qui a été volé ?
La source ? Vous pouvez mettre des Chaînes aléatoires dans celui-ci (mais il peut être changé). Vous pouvez aussi essayer d'ajouter un comportement spécial ne connais que de vous (un spécial keypress va changer une couleur de ligne), vous pouvez ensuite demander à l'enseignant "les autres savent ce combo spécial ?". La meilleure façon sera de planter le programme si un vide inutile de fichier n'est pas présent dans l'archive après 5 minutes d'activité, vos camarades d'école sera trop paresseux pour attendre cette quantité de temps.
Le binaire ? Une simple comparaison de la somme de contrôle de chaque .la classe sera suffisant (vos camarades d'école sont trop paresseux pour réécrire les fichiers de classe)
Il vous suffit de poster votre solution à la dernière minute. Cela ne peut pas donner le temps à quiconque de le copier.
Et envoyer un commentaire à l'administrateur de refuser des élèves pour voir d'autres étudiants affectations.
Si vous téléchargez le fichier dans un .zip avec mot de passe de cryptage, n'importe qui peut deviner le mot de passe par le téléchargement de l' .fichier zip et ont leur processeur d'exécuter un million de requêtes à lui si ils sont que les grandes d'un tricheur, voleur. Malheureusement, certains le sont et c'est facile à faire.
Votre source peut être consulté sur le serveur partagé par les autres élèves. L'enseignant devrait vraiment vous donner votre propre mot de passe crypté répertoire à télécharger. Cela pourrait facilement être fait simplement en ajoutant des sous-domaines. Mais peut-être que le professeur pourrait vous permettre de télécharger les fichiers sur votre propre serveur, pour lui, pour y accéder il.
Il est également possible de coder le script, de sorte qu'il a un document.write('Cette page a été écrite par xxxxx"), de forcer une personne à qui une copie de votre travail pour ne pas être en mesure de supprimer le crédit, à moins qu'ils ont d'abord décrypter. Mais la vraie réponse est que votre école doit donner à chacun de ses élèves leur propre mot de passe protégé répertoires.
Dans mon cas, mes professeurs sont venus avec une meilleure approche. Les questions qu'il a quelque chose à voir avec notre numéro d'enregistrement.
Ex:
Donc, des réponses, ou l'approche de la solution sont relativement différentes de chaque élève.Cela fera nécessairement de tous les élèves à faire leurs devoirs sur leur propre, ou au moins arriver à savoir comment pirater l'approche avec leur propre enregistrement[il peut être plus difficile que d'apprendre la lession ;)].