2012-06-04 38 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/