我正在评估从PHP迁移到Ruby (Ruby on Rails)。我最关心的一个问题是项目加密。
目前,在PHP中,我在将项目提供给客户端之前会使用Source Guardian对项目进行加密。
然而,对于Ruby,我找到的唯一选择是rubyencoder.com (和PHP source Guardian是同一家公司)。有没有人试过这个软件并且有第一手的经验?
还有别的软件吗?
在Ruby中有没有什么原生的方法来加密项目?
发布于 2012-06-04 22:49:32
你应该知道这并不是真正的保护你的代码。在某些情况下,代码必须由Ruby的VM执行(假设您使用的是1.9.x)。除非修改,否则VM本身将只能理解未加密形式的指令。
这意味着,在执行加密代码之前,必须将其转换回其原始形式。如果有人非常渴望阅读您的源代码,可以通过调试Ruby进程并等待解密发生来做到这一点。
即使只是字节码指令,也有可能从字节码解释中重建出非常易读的源代码,here就是一个例子,但类似的事情也可能发生在Ruby中。
代码混淆可能更符合您的需求,但对于Ruby代码来说,这也是一个非常危险的选择:它可能会破坏复杂的元编程特性。
我从来不是DRM度量的朋友,所以可能我在这里是相当固执的……但是你真的,真的相信你会需要这些功能吗?
发布于 2012-06-11 20:21:49
如果您可以使用Rubinius来执行代码,那么有一种简单的方法来处理这个问题(对于JRuby,可能也存在一个类似的解决方案,因为它在JVM上运行):使用Rubinius,您可以将源代码编译为字节码,然后只将二进制代码发送到客户端。然后,这些代码就可以在目标系统上执行,而不会泄露任何源代码。有关详细说明和注意事项,请参阅rubinius主页上的博客文章:http://rubini.us/2011/03/17/running-ruby-with-no-ruby/
https://stackoverflow.com/questions/10878370
复制相似问题