Protecting Code

Mark Brownell gizmotron at earthlink.net
Fri Apr 23 22:07:48 EDT 2004


On Friday, April 23, 2004, at 05:04  PM, kee nethery wrote:

> If I was going to create Revolution code that I wanted to give to 
> others but that I wanted to make sure that they could not change in 
> the Revolution Editor, how would I protect it? I'd want people to be 
> able to call it and compile it into their standalone apps. My 
> preference is to not use an XCMD kind of thing because I'd like to 
> write once, lock, and then allow people to deploy everywhere.
>
> Kee Nethery

Hi Kee,

I would try using the password property.

 From the docs:
"[Specifies a password that the user must enter before making changes 
to the stack.

set the password of stack "Secrets" to field "Password"
set the password of this stack to empty -- remove password

Use the password property to encrypt a stack's contents, allowing 
access only from within the application.

Value:
The password of a stack is a string.

By default, the password property of newly created stacks is set to 
empty.

Comments:
If the password property of a stack is not empty, all the text in the 
stack is encrypted (so that it cannot be read in another program, such 
as a text editor). Scripts, custom properties, text in fields or 
buttons, and object names in a password-protected stack are all 
encrypted. However, you can still open the stack, see the contents, and 
get object properties.

The password property applies to a stack, not to the entire stack file, 
so it is possible to have a stack file that contains both 
password-protected and unprotected stacks.

If the password is set, the stack's scripts cannot be modified, its 
password cannot be changed, and objects cannot be copied.

These restrictions stop operating temporarily for the current session 
when the stack's passKey property is set to the correct password by a 
handler.

To permanently remove the password restrictions, set the stack’s 
password to empty.
Setting the password to empty removes the password from the stack and 
makes it fully accessible to any user.

   Note:  Since all the text in a password-protected stack must be 
decrypted when the stack is opened, a password-protected stack takes 
longer to open than an unencrypted one, especially if the stack is 
large.

The password is encrypted when stored in the stack to prevent cracking 
the password protection. If you get the password of a stack, the 
property reports the encrypted text of the password, rather than the 
password itself.

   Important!  Password-protected stacks may cause some problems when 
opened in the Revolution development environment. (For example, the 
Application Browser window cannot display properties of a 
password-protected stack.) If you want to set a password for stacks 
before you release them, the recommended method is to set the password 
in Step 3 of the Distribution Builder when you package the final 
application for distribution.]"



More information about the use-livecode mailing list