Math wrote: > Hello, > > I wonder if I can ask this particular question here... > I'm writing this piece of Python Software and I'm almost done...:-) > But now I want the end-user to register this software with a > registration code or perhaps something like an evaluation demo version > which expires after some period of time... > Is this the right place to ask or does anybody know where to look for > more on the subject? > > Thanks >
One thing I tried some time ago: I encypted the bytecode of a few important functions with a key based on information required from the user. Without the key, these functions can't be decrypted. This is somewhat more secure than just testing the key with an "if" statement since the latter could easily be bypassed by a hacker. To encrypt the function, I saved the bytecode of the target function to a file. Then, in the version to be shipped, I substituted the encrypted version of bytecode for the original bytecode. The rest of the program (including the part that asks for the authentication information) works fine. If the authentication passes, the encrypted function(s) are decrypted. Normally the encrypted functions are never executed of course (if authentication fails, the user is notified). If a hacker bypasses the authentication test, the program will crash when the program attempts to executed the encypted bytecode. How to determine the key depends on your application. You may choose to include hardware serial numbers, for example. - Ken -- http://mail.python.org/mailman/listinfo/python-list