Time-limiting code

2 visualizzazioni (ultimi 30 giorni)
mahmud mohammadi
mahmud mohammadi il 23 Mag 2011
[EDIT: 20110523 17:40 CDT - clarify - WDR]
I need to give a program code in a m.file type. but I want that code be expired after a specific time. Can you help me?
  1 Commento
Jan
Jan il 23 Mag 2011
Are you sure you need M-files? P-file cannot be modified or read in clear text. But a secure time limitation cannot be achieved by P-coding also.

Accedi per commentare.

Risposte (2)

Sean de Wolski
Sean de Wolski il 23 Mag 2011
  2 Commenti
Jan
Jan il 23 Mag 2011
This thread concerns P-files. The OP asks for M-files - to my surprise.
Sean de Wolski
Sean de Wolski il 23 Mag 2011
I'd guess the OP had never heard of a p-file.

Accedi per commentare.


Jan
Jan il 23 Mag 2011
M-files are very easy to edit. Therefore it is hard to imagine which level of protection you expect from such an expiration.
I assume the best expiration mechanism for an M-file is removing all comments, using minimalistic names for variables and subfunctions, interchange of variables by ASSIGNIN and EVALIN and using a flock of variables (G1, G2, G3, ...) instead of an array together with EVAL command to access them.
Then let the customer sign a contract, which includes the date of expiration. Without your support, such an ugly M-file is useless and the customer will delete it voluntarily.
There are some very good examples for this method in the FEX. Look for files, which have been rated with 1 star by John D'Errico. [EDITED: Tried to formulate the last sentence more clear.]
  7 Commenti
Walter Roberson
Walter Roberson il 23 Mag 2011
Jan, when you create a field name that way, is it the single-byte characters or the double-byte characters? And if you have something like a struct(), does it use double-byte characters like the rest of MATLAB or does it "save space" by using single-byte characters?
Jan
Jan il 24 Mag 2011
The fieldnames are 8 bit UCHARs: CHAR(200) works as fieldname if created inside a Mex and accessed by "S.(char(200))", but CHAR(300) fails.
mxGetFieldNameByNumber replies a pointer to a \0 terminated C-string with a fixed distance of 64 byte - at least in all tests I've performed with Matlab 2009a, but this is not a proof.

Accedi per commentare.

Categorie

Scopri di più su Properties in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by