Nous avons un programme critique d'entreprise mis en œuvre à Python. Notre patron ne veut pas que les autres, en particulier nos rivaux de savoir comment il est conçu et mis en œuvre. Donc, je dois trouver un moyen de le crypter. J'ai d'abord pensé à PYC et à PYO, mais j'ai vite constaté qu'ils sont susceptibles d'être démontés. Je veux crypter nos codes source, mais je ne sais pas comment le faire? Pourriez-vous les gars, aidez-vous à m'aider avec ça? Toute directive serait très appréciée. p>
3 Réponses :
Une fonctionnalité confidentielle séparée dans les fonctions C et développez des emballages de Swig. Si vous utilisez C ++, vous pouvez envisager Boost Python. P>
Je vous suggérerais de revenir en pensant à cela, en considérant: p>
Tout d'abord, Python n'a pas été conçu pour être obscurci. Chaque aspect de la langue est libre et accessible à quiconque souhaite inspecter ou la modifier. Être un langage de bytecode rend difficile de verrouiller, et Python Bytecode est facile à comprendre. Si vous voulez construire quelque chose que vous ne pouvez pas voir à l'intérieur, vous devrez utiliser un autre outil. P>
Deuxièmement, tout (littéralement) peut éventuellement être inverse, alors ne supposez donc pas que vous pourrez protéger pleinement le code. Vous devez être capable de comprendre le compromis entre l'importance de cacher un morceau de code (pour une estimation de la quantité x des ressources) par rapport à la manière dont la cachette utile est-elle (également en termes d'effort). Essayez de déterminer de manière réaliste à quel point votre "conception et mise en œuvre" est importante, de justifier tout cela. P>
envisager d'avoir des exigences légales. Si vous attendez que les gens vont abuser de votre code, il serait peut-être plus utile que vous puissiez facilement découvrir ceux qui font et transforment cela en un problème juridique. P>
tout peut être inverse ingénieur. Il est pas possible fort> pour donner aux informations de machine d'un utilisateur sans possibilité que l'utilisateur examine cette information. Tout ce que vous pouvez faire est de faire plus d'effort. P>
Python est particulièrement mauvais si vous avez cette exigence, car Python Bytecode est beaucoup plus facile à lire que le code de la machine entièrement assemblé. En fin de compte, tout ce que vous faites pour le rendre plus obscurci, l'ordinateur de l'utilisateur devra être capable de les désagréger pour la transformer en bytecode Python normal afin que l'interpréteur de Python puisse l'exercer. Par conséquent, un utilisateur motivé sera capable de désagréger tout ce que vous leur donnez également à Python Bytecode. P>
Si vous avez des rivaux qui sont susceptibles de vouloir savoir comment fonctionner vos programmes, vous devez supposer que tout code que vous avez publié sur les utilisateurs finaux sous quelque forme que ce soit sera entièrement compris par vos rivaux. Il y a La seule façon de contourner ce problème est de ne pas donner à vos utilisateurs ce code non plus, si vous pouvez exécuter votre code sur un serveur sous votre contrôle et donner uniquement à vos utilisateurs un programme muet qui fait des demandes à votre serveur pour le travail réel. p>
Python n'est pas le bon outil pour le travail dans ce cas. Envisagez d'offrir votre logiciel en tant que service (= Application Web = Vous ne devez pas distribuer votre byTecode car il fonctionnera sur votre serveur)