2012-06-04 39 views
2

我正在评估从PHP迁移到Ruby(Ruby on Rails)。我最担心的是项目加密。Ruby on Rails项目加密软件或方法?

目前在PHP中,我通过使用Source Guardian将项目交给客户端之前对其进行加密。

但是对于Ruby,我发现的唯一选择是rubyencoder.com(与PHP源卫士相同的公司)。有没有人试过这个软件,并有第一手的经验?

有没有其他软件?

在Ruby中是否有任何本地方式来加密项目?

+0

http://stackoverflow.com/questions/2123437/ruby-obfuscator –

回答

2

你应该知道这并不能真正保护你的代码。在某些时候,代码将不得不由Ruby的虚拟机执行(让我们假设你在1.9.x上)。虚拟机本身,除非经过修改,否则只能以未加密的形式理解说明。

这是什么意思是,在加密的代码可以执行之前,它必须被转换回原来的形式。有人非常渴望阅读你的源代码,可以通过调试Ruby进程并等待解密发生。

即使它只是您从中得到的字节码指令,也可以从字节码解释中重建可读的源代码,here是Java的一个例子,但Ruby也可能有类似的情况。

代码混淆可能更符合您的需求,但它也是Ruby代码的一个非常冒险的选择:它可能会破坏复杂的元编程功能。

我从来没有成为数字版权管理措施的朋友,所以这可能是我在这里颇有见地......但是你真的,真的相信你会需要这样的功能吗?

1

如果您可以使用Rubinius来执行代码,那么有一种简单的方法来处理它(JRuby可能也存在类似的解决方案,因为它在JVM上运行):使用Rubinius将源代码编译为字节代码并只将二进制代码发送给客户端。该代码可以在目标系统上执行而不会泄漏任何源代码。有关详细说明和注意事项,请参阅rubinius主页上的此博客文章:http://rubini.us/2011/03/17/running-ruby-with-no-ruby/