我正在做一个需要读取文本文件,从中提取数据,然后生成报告(文本文件)的项目。由于有很多字符串解析,我决定用 Perl 或 Python 或 PHP 来做(优先顺序)。但我不想将源代码公开给我的客户。有没有什么好的编译器可以将 perl/python/php 脚本编译成 linux 可执行文件?
我不是在寻找一个 100% 完美的,但我在寻找一个至少 90% 完美的。完美,我的意思是编译器不需要编写具有有限语言特性子集的脚本。
我正在做一个需要读取文本文件,从中提取数据,然后生成报告(文本文件)的项目。由于有很多字符串解析,我决定用 Perl 或 Python 或 PHP 来做(优先顺序)。但我不想将源代码公开给我的客户。有没有什么好的编译器可以将 perl/python/php 脚本编译成 linux 可执行文件?
我不是在寻找一个 100% 完美的,但我在寻找一个至少 90% 完美的。完美,我的意思是编译器不需要编写具有有限语言特性子集的脚本。
对不起,这根本不值得花你的时间。对于您选择的任何语言(从您列出的语言中),对于某人选择提出的任何编译器/混淆器,我向您保证我可以从中获得可读的源代码(如果是 Perl,则在一小时内;如果是 Python,则更长或 PHP 仅仅是因为我对这些语言的实现不太熟悉,而不是因为这些语言本质上更难)。
我认为您应该更好地了解您的目标是什么,以及为什么要为您假设先验想要欺骗您的客户工作。如果您仍然想继续使用这样的方案,请用 C 或 Fortran 编写——当然不是任何以“P”开头的东西。
确实存在一个 perl 编译器,称为perlcc。我不熟悉 perl,但它看起来像你正在寻找的东西。
加密 Perl 代码有 3 个选项:
使用 PAR 创建带有 PAR::Filter::Obfuscate 或 PAR::Filter::Crypto 的可执行文件
使用 Filter::Crypto::CryptFile(需要在目标操作系统上安装一些模块)
转成模块,加密成Module::Crypt。
您也可以尝试 B::C - 它已从核心 Perl 发行版中删除,现在可在 CPAN 上使用。
到目前为止,我们已经听说过带有一些混淆过滤器的 perlcc 和 PAR。这些可能会起作用。
我对 ActiveState 的 PerlApp 非常幸运,它是他们的 Perl 开发工具包的一部分。
它可以很好地捆绑您的代码并将其隐藏。您可以免费试用它,它附带一些不错的附加功能。贵还是便宜,取决于你的看法。对我来说,它很便宜。使用 PAR 或弄乱 perlcc 使代码隐藏工作和可靠的时间成本很容易低于软件包的价格。YMMV。
我从来没有使用过这个,所以我不知道设置有多容易,但是您可以使用 HipHop PHP 将您的 PHP 脚本转换为 C++ 代码并编译它们。(假设您选择用 PHP 编写它们)
对于 Python,您可以调用您的代码并将 *.pyc 文件提供给客户端。
对于 linux,可执行文件是设置了 +x 的东西,因此无需编译脚本。要隐藏您的源代码,您可以使用混淆器。这使您的源代码不可读。