【发布时间】:2021-04-30 12:14:30
【问题描述】:
我创建了一个 R 代码脚本:
- 从数据库中读取一些数据
- 进行一些转换并......
- 将修改后的表格导出为 csv。
此代码需要在客户端机器上运行,但我们需要对用户“隐藏”实际代码。
对于我们如何实现这一目标有什么有用的建议吗?
【问题讨论】:
-
这几乎是不可能的。如果您有非常不成熟的用户,您可能可以进行混淆(例如,让他们在本地运行 Shiny 应用程序)。 researchgate.net/post/How_to_make_invisible_the_R_code
-
Vamkos,不幸的是,R 不提供从脚本编译/导出
.exe的能力,这可能与其他一些语言不同。一般而言,从最终用户那里隐藏代码的唯一合理方法是不在他们的计算机上运行 R 的东西。选项:将其作为管道工 API 端点(您必须将其托管在某处)、闪亮的应用程序或 Rserve 运行(尽管在跨网络拓扑中要很好地保护它有点困难)。 -
一些将 R 代码部署到最终用户而不需要他们了解 R(甚至管理 R 实例)的方法专注于处理安装等,而不是保护正在运行的代码;坚定的用户很可能无需太多努力即可获得完整的源代码。此类努力包括RInno 和DesktopDeployR 等。我既不推荐也不反对,只是为了证明大多数努力是在与 IT 挑战用户打交道,而不是好奇的用户。
-
归根结底,从好奇的用户那里保护 R 代码的唯一合理(当然也是最好的)方法是在您控制的计算机上运行所有基于 R 的处理。
-
多年来,这个问题已经在不同的场合多次讨论过(可能主要在 R 邮件列表中)。 @r2evans,您可以将您的 cmets 作为规范的 SO 答案发布(假设它已经不在网站上的某个地方......)