Vis*_*are 16 r source-code-protection
我有一堆R脚本,我在Windows机器上运行,并希望确保那些不打算看到它的代码仍未读取.在Linux机器上,我可以将R代码包装在bash脚本中#!并制作一个加密的(甚至可能是有限生命的)可执行shell脚本.在Windows下类似行上我有什么选择?
Ite*_*tor 20
我的回答有点晚,但我相信这是一个很好的问题.不幸的是,我不认为现在有一个解决方案,或者至少是一个简单的解决方案.
这种困难很常见,因为对于大多数解释性语言,包括R,通常可以打开日志并检查正在运行的所有命令.这可以否定许多技巧来混淆代码.
对于那些更喜欢将代码视为开放= =好的人,应该知道混淆代码的一个常见原因是,如果一个人正在咨询雇用多个供应商的客户.客户端从供应商A获取脚本并询问供应商B为什么它不能与他们的系统一起工作的情况并不少见.(这可能是由低级别的IT人员,而不是负责NDA合同的人.)如果A&B是竞争对手,A的代码刚刚交给B.当脚本==严肃的程序,那么严重的代码已经被送走了.
我看到这个问题的方法是:
当代码可以广泛分发时,选项2实际上更容易和更好,而不仅仅是出于IP原因.它的一个主要优点是,它可以让您升级代码,而无需经历站点范围内的发布过程.如果需要新库,没问题 - 更新服务器.
选项3在Matlab中使用.p文件完成,py2exe可以在Windows上使用Python 完成.在R中,新的字节码编译可能是类似的,但我不太熟悉它来解决.RcR上下文中的.p文件和Matlab上下文中的文件之间的任何差异.有关编译器的更多信息,请参阅:http://www.inside-r.org/r-doc/compiler/compile
在服务器上托管计算非常适合与不熟练的用户一起工作,因为更容易快速迭代以响应错误或功能请求.知识产权保护只是一种好处.
这不是一个特定的R导向战略.(并且有点不清楚你的约束或目标究竟是什么.)如果你想要一个跨平台加密方法,你应该研究开源程序TrueCrypt.它支持创建可以作为卷挂载在任何支持卷格式化方法的计算机上的加密文件.我已经在Mac PC上进行了测试,因为Mac可以读取FAT文件,但是没有经验可以解决它在Linux-PC鸿沟中的作用.
(他们的Windows TODO列表包括:"用于创建卷的命令行选项(已在Linux和Mac OS X版本中实现)".所以我没有看到任何明确的方法在R中使用它而不运行程序OS).
我认为这是不可能的,因为 R 解释器必须能够解密和读取代码才能执行它,这意味着使用该解释器的任何人也都能够解密和读取代码。
我绝不是专家,所以我保留对这种说法 100% 错误的权利。
我相信最好的解决方案是确保价值来自您的公司及其雇主提供的专业知识和服务,而不是来自保守秘密。
如果做不到这一点,您可以尝试将代码分离到客户端/服务器模型中。这样,客户端只发送数据并接收结果——他们永远无法访问服务器上运行的代码。
然而,我内心的科学家只是说“这个解决方案很糟糕,我永远不会相信在这种情况下提供的结果”。
| 归档时间: | 
 | 
| 查看次数: | 12216 次 | 
| 最近记录: |