第一種:〔 Python 與 Bash Shell 的結合 〕
這個命令會讓你輸入一個字符串,而後會再輸出一串加密了的數字。
加密代碼[照直輸入]:
python -c 'print reduce(lambda a,b: a*256+ord(b), raw_input("string: "), 0)'
解密代碼[數字後+P]:
dc -e 輸出的數字P
第二種:〔 應該是純 Bash Shell,含 VIM 的 xxd 〕
用 gtalk@gmail.com 做爲明文,加密分兩步,固然了,也是能夠一步過的,呆會說~
加密代碼:
一、echo "gtalk@gmail.com" |xxd -ps -u
獲得:6774616C6B40676D61696C2E636F6D0A
二、echo "ibase=16; 6774616C6B40676D61696C2E636F6D0A" |bc
獲得:137514765985002236391382606438443478282
一步加密代碼:
echo "ibase=16; $(echo "gtalk@gmail.com" |xxd -ps -u)" |bc
獲得:137514765985002236391382606438443478282
解密代碼:
三、dc -e 137514765985002236391382606438443478282P
獲得:gtalk@gmail.com
第三種:〔 Base64 編碼,這個很好很強大,適合寫加密腳本 〕
一樣用 gtalk@gmail.com 做爲明文,來看代碼:
加密代碼:
echo "gtalk@gmail.com" |base64 -i
獲得:Z3RhbGtAZ21haWwuY29tCg==
解密代碼:
echo "Z3RhbGtAZ21haWwuY29tCg==" |base64 -d
獲得:gtalk@gmail.compython
用shell腳本對系統進行自動化維護,簡單,便捷並且可移植性好.
但shell腳本是可讀寫的,頗有可能會泄露敏感信息,如用戶名,密碼,路徑,IP等.
一樣,在shell腳本運行時會也泄露敏感信息.
請問如何不影響腳本運行的前提下,對腳本進行加密?shell
1、shc方法bash
shc是一個加密shell腳本的工具.它的做用是把shell腳本轉換爲一個可執行的二進制文件,這就很好的解決了上述問題.dom
yum安裝:工具
yum -y install shc編碼
編譯安裝:加密
wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz tar xvfz shc-3.8.7.tgz cd shc-3.8.7 make
[root@martin shc-3.8.7]# ./shc -v shc parse(-f): No source file specified shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-rvDTCAh] -f script
建立一個示例Shell腳本spa
[root@martin shc-3.8.7]# vi random.sh #!/bin/bash read -p "How many random numbers do you want to generate?" max for (( start = 1; start <= $max; start++ )) do echo -e $RANDOM done
給腳本增長可執行權限code
[root@martin shc-3.8.7]# chmod u+x random.sh
執行示例腳本blog
[root@martin shc-3.8.7]# ./random.sh How many random numbers do you want to generate?3 14235 9555 7671
使用shc加密Shell腳本
[root@martin shc-3.8.7]# ./shc -v -r -T -f random.sh shc shll=bash shc [-i]=-c shc [-x]=exec '%s' "$@" shc [-l]= shc opts= shc: cc random.sh.x.c -o random.sh.x shc: strip random.sh.x shc: chmod go-r random.sh.x
運行後會生成兩個文件,script-name.x 和 script-name.x.c
script-name.x是加密後的可執行的二進制文件
script-name.x.c是生成script-name.x的原文件(c語言)
[root@martin shc-3.8.7]# ll random.sh* -rwxr-xr-x 1 root root 146 Aug 2 10:26 random.sh -rwx--x--x 1 root root 9424 Aug 2 10:30 random.sh.x -rw-r--r-- 1 root root 10080 Aug 2 10:30 random.sh.x.c
執行加密後的腳本
[root@martin shc-3.8.7]# ./random.sh.x How many random numbers do you want to generate?3 28955 21487 29513
還不完善,只能全路徑執行shc命令或者進入目錄內,加入全局環境變量/etc/profile未生效
2、gzexe
它是使用系統自帶的gzexe程序,它不但加密,同時壓縮文件
這種加密方式不是很是保險的方法,可是可以知足通常的加密用途,能夠隱蔽腳本中的密碼等信息。
使用方法:
[root@martin home]# gzexe random.sh random.sh: 20.5%
[root@martin home]# ll random.sh* -rwxr-xr-x 1 root root 953 Aug 2 10:45 random.sh -rwxr-xr-x 1 root root 146 Aug 2 10:45 random.sh~
它會把原來沒有加密的文件備份爲 file.sh~ ,同時 file.sh 即被變成加密文件
參考地址:
http://lidao.blog.51cto.com/3388056/1914205
https://yq.aliyun.com/ziliao/65848