ojb*_*ass 0 c unix encryption scripting
UPDATE2:
感谢您的投入.我已经实现了算法,可以在SourceForge上下载.这是我的第一个开源项目,所以请怜悯.
更新:
我不确定我是否足够清楚,或者每个人都对此有所了解,了解贝壳消耗的方式#!输入类型.一本很好看的书是Advanced Unix Programming.如此处所示,调用popen并提供其标准输入就足够了.
原始问题:
我们的脚本在高度分散的环境中运行,有许多用户 由于许多原因,使用权限隐藏它们是有问题的.
由于第一行可用于为脚本指定"解释器",因此初始行可用于定义解密器
#!/bin/decryptandrun
*(&(*S&DF(*SD(F*SDJKFHSKJDFHLKJHASDJHALSKJD
SDASDJKAHSDUAS(DA(S*D&(ASDAKLSDHASD*(&A*SD&AS
ASD(*A&SD(*&AS(D*&AS(*D&A(SD&*(A*S&D(A*&DS
Run Code Online (Sandbox Code Playgroud)
鉴于我可以编写脚本来加密并放置适当的头,我想要解密脚本(它本身可能有一个解释器行,如#!/ bin/perl在它的顶部),而不做任何愚蠢的写出来到一个临时文件.我发现了一些愚蠢的商业产品.我认为这可以在几个小时内完成.是否有一个众所周知的方法用管道而不是编码系统调用?我在考虑使用execvp但是更换当前进程或创建子进程是否更好?
如果您的用户可以执行decryptandrun程序,那么他们就可以读取它(以及它需要读取的任何文件,例如解密密钥).因此,他们可以只提取代码来解密脚本本身.
你可以通过制作decrtyptandrun suid来解决这个问题.但是,它中的任何错误都可能导致用户获得root权限(或至少拥有解密密钥的帐户的权限).所以这可能不是一个好主意.当然,如果您通过使用户无法读取这些解密脚本的内容或密钥而烦恼,那么为什么不能对脚本的内容执行相同的操作呢?我试图隐藏?
此外,您不能将已#!解释的可执行文件作为另一个已解释的可执行文件的解释#!器.
密码学的基本规则之一是,除非您是经验丰富的密码分析师,否则不要发明自己的加密算法(或工具).
这让我想知道为什么你觉得需要加密用户将运行的脚本.他们看到脚本的内容有什么不对吗?