一、加密原因
當我們正式線上開發環境是基于Linux開發時,通常必不可少的就是shell腳本的編寫。
shell腳本的好處眾多,可對系統進行自動化維護,簡單,快捷而且可移植性強。
存在問題:
但是shell腳本時可讀寫的,很有時候,當線上業務量過多的時候,許多的執行命令還有一些信息我們可能會在腳本中來進行記錄,防止丟失。但是這樣以來可能會泄露一些敏感信息,比如用戶名,密碼,路徑,IP,數據存放位置等隱私信息。
同樣,在shell腳本運行時也會泄露敏感信息。
比如當需要做一個自動登錄腳本時,每次手動輸入密碼太慢,而且手動輸入可能會有手誤現象;直接把密碼寫到腳本中upx能加密使用時間限制嗎,是很快捷,但是不安全,容易泄露。
二、解決方案:
把密碼寫在腳本中,作為參數傳遞給下一個腳本讓其用來登錄,而保存密碼的腳本,使用某種手段加密,讓其不可讀但是可執行。
三、加密方法及實戰演示
shell腳本的加密常用方法有以下三種:
gzexe,shc,upx
1、gzexe方法【特點是不用安裝,加解密簡單粗暴】
先準備兩個腳本,一個是test.sh,主要用來計時,它會調用另一個腳本a.sh,這個a.sh就是要加密的腳本了。
a.sh腳本內容:
然后執行【加密】
gzexe a.sh
執行完成顯示如此
然后查看腳本內容 cat a.sh!
發現腳本已經加密,原始代碼看不見了
然后【解密】
gzexe -d a.sh
再查看腳本a.sh,顯示如下:
恢復原樣,說明已經解密
總結:gzexe其實就是個壓縮文件,能起到隱藏文件內容的效果,執行速度幾乎和腳本一樣(在腳本不大的情況下),但是如果加密文件丟失,就會有風險,輕松就被破解了、還是謹慎為好。
2、shc【需要安裝】
shc方法特點:加密以后,原文件不會變,會生成一個原文件.x的加密后的文件。
安裝方法:
yum install -y shc
使用方法:
shc -r -f script-name
注意:要有-r選項,-f后要跟加密的腳本名
運行后,會生成兩個文件,-name.x 和 -name.x.c
-name.x 是加密后的可執行的二進制文件
執行 ./-name 即可運行。
-name.x.c是生成-name.x的原文件
加密命令:
shc -T -f a.sh
加密后,發現查看不了
發現出現一堆數字
總結:shc安全性好,但是解密太麻煩,加密后執行速度太慢
3、upx
upx是一個加殼工具,主要用來給可執行文件加密用的
安裝upx
yum install -y upx
upx加密命令
最快壓縮
upx -l a.sh
最強壓縮
upx -9 a.sh
總結:
upx不能壓縮太小文件upx能加密使用時間限制嗎,適用性不強
三者對比總結:
保護遠程密碼的話,直接使用gzexe即可,避免無意間泄露,執行速度快,如果能保證軟件安全(牛逼的殺毒軟件)和硬件安全(電腦別被偷了)的話,安全性還是可以接受的。如果腳本本身執行時間就很長,那么shc執行慢的特點或許也是可以忽略不計的。
(501條消息) Shell腳本加密方法大全及案例演示_聽說唐僧不吃肉的博客-CSDN博客加密