MATLAB:安全共享函数

标签 matlab deployment share

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

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

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

  • 当我输入 help myfun 时, 我得到 No help found for myfun.p.尽管我已经为原始的 .m 创建了一个简短的帮助(通过紧跟在函数声明之后的注释)
  • 数学 says .p 文件包含原始 .m 的模糊、未加密版本

除了pcode还有其他方法吗?可以纠正上述一个或两个问题?

最佳答案

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

    请注意 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 文件中。

关于MATLAB:安全共享函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40007099/

相关文章:

matlab中断抛出异常

java - 保持 MATLAB 的 "pwd"和内部 "user.dir"同步

ruby-on-rails - 如何将 ruby​​ on Rails 项目部署到仅包含 ruby​​ 的服务器?

facebook - 从我的移动网站使用 Facebook Messenger 发送 URL

windows - 如何访问 Windows 共享上的 git 存储库?

iphone - 从 iOS 5 应用程序向 Facebook 分享内容

matlab - matlab中二分图的连通分量

c++ - 在 Matlab 2013a 中编译和运行 mex

node.js - 在 Azure 上部署 React 项目

c++ - Linux Mint x64 : Qt 5. 3.1 插件部署:不兼容的 qt 库