我如何加密bash脚本源代码?

时间:2013-07-19 15:56:59

标签: bash encryption

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

非常感谢。

5 个答案:

答案 0 :(得分:2)

Bash是一种纯粹的解释语言,因此解释器(bash)只有在明文的情况下才能运行它。

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

其他答案和评论已经说过加密是不可行的,所以我不打算这样做。我认为这条道路甚至不能解决你想要解决的问题。

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

几乎任何问题,最好先用最简单的方法开始,然后根据需要增加复杂性。首先,您可能根本不需要做任何事情!执行shell脚本时,进程列表将仅显示执行脚本(bash)的shell的名称和脚本的名称。没有人能够以这种方式看到脚本的内容。

如果这不符合您的需求,那么下一步就是使用标准文件权限来确保没有人可以查看文件的内容。即。删除组和其他

的读/写/执行权限
chmod go-rwx <name of script>

如果这些都不够,您将需要提供有关您尝试做什么以及您所关注的问题的更多详细信息。

答案 3 :(得分:0)

很抱歉醒来了#34;死马&#34;,只是想分享我用gpg做的事情。如前所述,bash只能以明文形式运行它(脚本)。

使用gpg加密shell脚本:

gpg -c <your_bash_script.sh>

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

这将创建一个扩展名为.gpg的加密文件。默认加密是CAST5,如果你想要一个更严格的密码添加--cipher-algo&#34; cipher_name&#34; (查看手册页了解详情)

<your_bash_script.sh.gpg>

用gpg解密你的shell脚本:

gpg -d <your_bash_script.sh.gpg>

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

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

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

你甚至可以使用gpg键

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

答案 4 :(得分:-1)

如果您希望保护脚本不受公众查看,我建议您尝试将脚本提交到this site

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

作为一个多次偷工作的人,我只是不在乎“混淆”或“加密”是否是一个禁忌。只要我的脚本受到保护并且它像加密之前一样工作,我很高兴。我再也不会允许其他人为我的工作取得好成绩。不,用编译语言编写脚本不是一种选择。我不知道怎么做。

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