MATLAB:安全共享函数

MATLAB: secure share a function

我写了一个MATLAB独立函数myfun.m,我想分享给同样有MATLAB的人。他们可以使用函数,但我不想让他们看到函数内部的内容。

到目前为止,我已经看到使用 pcode 执行此操作的 1 种方法:我将使用 pcode('myfun.m') 创建 myfun.p,然后与他人共享 myfun.p这是正确的吗?

上面的方法似乎有两个问题:

除了 pcode 之外,是否还有其他方法可以解决上述一个或两个问题?

  1. 从包含所有帮助文本的 .m 文件生成 .p 文件时,所有注释都将被删除。如果您想为 .p 文件提供帮助文本,您可以单独创建一个与 .p 文件同名的 .m 文件,其中只包含 [=36] =] 帮助文本。由于函数解析的顺序,.p文件在编程使用时会被求值,寻求帮助时会引用.m文件。

    请注意以下 table 来自 Mathworks 的 .p.m 文件的顺序:

    When determining the precedence of functions within the same folder, MATLAB considers the file type, in this order:

    1. Built-in function
    2. MEX-function
    3. Simulink model files that are not loaded, with file types in this order:
    4. SLX file
    5. MDL file
    6. App file (.mlapp) created using MATLAB App Designer
    7. Program file with a .mlx extension
    8. P-file (that is, an encoded program file with a .p extension)
    9. Program file with a .m extension
  2. 这是真的,.p 文件的内容被混淆了,但用户对文件内容进行逆向工程并非易事,因此可能不值得他们为此付出努力这样做。您可以找到几个声称可以从 .p 文件生成 .m 文件的实用程序,但这些 .m 文件可能看起来与原始来源完全不同。

    如果您真的很关心算法的安全性,您可以随时将敏感部分写入已编译的 mex 文件中。