2

我想正常执行我的 bash 脚本,但没有人看到我的源代码。如何加密我的 bash 脚本?

多谢。

4

5 回答 5

2

Bash 是一种纯解释型语言,因此解释器(bash)只有在它是明文时才能运行它。

您可以尝试混淆代码: How to minify/obfuscate a bash script

另一方面,您可以使用系统权限限制哪些用户访问该代码。

于 2013-07-19T16:03:50.853 回答
2

抱歉唤醒一匹“死马”,只是想分享一下我使用gpg所做的事情。如前所述,bash 只能以明文形式运行它(脚本)。

使用 gpg 加密 shell 脚本:

gpg -c <your_bash_script.sh>

这将要求您输入密码并确认。

这将创建一个扩展名为 .gpg 的加密文件。如果您想要更严格的密码,则默认加密为 CAST5 添加 --cipher-algo "cipher_name"(有关详细信息,请查看手册页)

<your_bash_script.sh.gpg>

用 gpg 解密你的 shell 脚本:

gpg -d <your_bash_script.sh.gpg>

这将提示您输入分配给文件的密码,并在屏幕上显示其内容。

如果你把它们放在一起,你有:

gpg -d <your_bash_script.sh.gpg> | bash

您甚至可以使用 gpg 密钥

每次编辑脚本时,您都会编辑脚本的未加密版本或将解密的输出通过管道传输到文件并在完成后重新加密。

于 2018-01-26T19:20:48.170 回答
0

其他答案和评论已经说过加密是不可行的,所以我不会讨论。我认为该路径甚至无法解决您要解决的问题。

你没有给出你想要达到的目标的实际例子,所以下面的建议可能还不够。

对于几乎所有问题,最好先从最简单的方法开始,然后根据需要增加复杂性。首先,您可能根本不需要做任何事情!当你执行一个 shell 脚本时,进程列表只会显示执行脚本的 shell 的名字 (bash) 和脚本的名字。没有人可以通过这种方式看到脚本的内容。

如果这不能满足您的需求,那么下一步就是使用标准文件权限来确保没有人可以查看文件的内容。IE。删除组和其他的读/写/执行权限

chmod go-rwx <name of script>

如果这些都不够,您将不得不提供有关您正在尝试做什么以及您的担忧是什么的更多详细信息。

于 2013-08-12T08:51:02.153 回答
0

你可以使用 shc。这是一个例子。不过,不确定这是否是提出这个问题的好地方。似乎与超级编程无关。超级用户可能是一个更好的地方。:)

http://www.thegeekstuff.com/2012/05/encrypt-bash-shell-script/

于 2013-07-19T15:59:34.590 回答
0

如果您希望保护脚本不被公众看到,我建议您尝试将脚本提交到此站点。

虽然许多人会不同意隐藏用解释语言编写的脚本的源代码的想法,但我理解为什么需要这项工作。

作为一个作品多次被盗的人,我只是不在乎“混淆”或“加密”是否是禁忌。只要我的脚本受到保护并且它像加密之前一样工作,我就很高兴。我再也不会允许别人为我的工作而获得荣誉。不,用编译语言编写我的脚本不是一种选择。我不知道怎么去。

无论如何,如果您不想使用上述网站,请尝试最新版本的shc。我相信他们已经在 github 中对其进行了更新,以解决其他人提到的许多安全问题。在谷歌“shc github”中输入以下内容,您将看到许多可以尝试的可用选项。

于 2017-04-17T02:12:12.060 回答