在日常工作中经常遇到在shell中使用明文密码的情形,例如mysqldump、mysql、redis等远程操作中,为了快速的完成任务而使用明文密码。
当明文密码遇到漏扫或检测,哦吼. 凉凉......所以实际工作中尽量不要记录明文密码。效率与安全往往是相悖的,如果一些重复繁琐的工作必须以明文连接方式执行,可以通过记录密文的方式来规避明文显示。
附带一份shell加密脚本。可以直接混入shell脚本中使用。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29#!/bin/bash function b64Code() { #参数1: 需要加密的串 passauth=$1 #参数2: 加密的次数,次数越多密码越长 for i in `seq 1 $2` do #python2 #hidePwd=`echo $PASSWORD_STR |python -c "import base64;s=raw_input();print(base64.b64encode(s))"` #python3 passauth=`echo $passauth |python -c "import base64;s=input(); print(base64.b64encode(s.encode()).decode());"` echo "[+]第${i}次加密结果:$passauth" done } function deCode() { #参数1: 加密串内容 passDstr=$1 #参数2: 密码解析次数 for i in `seq 1 $2` do passDstr=`echo $passDstr |python -c "import base64;s=input(); print(base64.b64decode(s.encode()).decode());"` echo "[-]第${i}次解密结果:$passDstr" done } b64Code 123456 10 echo "" deCode $passauth 10
执行效果如下:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20[+]第1次加密结果:MTIzNDU2 [+]第2次加密结果:TVRJek5EVTI= [+]第3次加密结果:VFZSSmVrNUVWVEk9 [+]第4次加密结果:VkZaU1NtVnJOVVZXVkVrOQ== [+]第5次加密结果:VmtaYVUxTnRWbkpPVlZaWFZrVnJPUT09 [+]第6次加密结果:Vm10YVlWVXhUblJXYmtwUFZsWmFXRlpyVm5KUFVUMDk= [+]第7次加密结果:Vm0xMFlWbFdWWGhVYmxKWFltdHdVRlpzV21GWFJscHlWbTVLVUZWVU1Eaz0= [+]第8次加密结果:Vm0weE1GbFdiRmRXV0doVllteEtXRmx0ZEhkVlJscHpWMjFHV0ZKc2NIbFdiVFZMVlVaV1ZVMUVhejA9 [+]第9次加密结果:Vm0wd2VFMUdiRmRpUm1SWFYwZG9WbGx0ZUV0WFJteDBaRWhrVmxKc2NIcFdNakZIVjBaS2MyTkliRmRpVkZaTVZsVmFWMVpWTVVWaGVqQTk= [+]第10次加密结果:Vm0wd2QyVkZNVWRpUm1ScFVtMVNXRll3Wkc5V2JHeDBaVVYwV0ZKdGVEQmFSV2hyVm14S2MyTkljRmROYWtaSVZqQmFTMk15VGtsaVJtUnBWa1phVFZac1ZtRldNVnBXVFZWV2FHVnFRVGs9 [-]第1次解密结果:Vm0wd2VFMUdiRmRpUm1SWFYwZG9WbGx0ZUV0WFJteDBaRWhrVmxKc2NIcFdNakZIVjBaS2MyTkliRmRpVkZaTVZsVmFWMVpWTVVWaGVqQTk= [-]第2次解密结果:Vm0weE1GbFdiRmRXV0doVllteEtXRmx0ZEhkVlJscHpWMjFHV0ZKc2NIbFdiVFZMVlVaV1ZVMUVhejA9 [-]第3次解密结果:Vm0xMFlWbFdWWGhVYmxKWFltdHdVRlpzV21GWFJscHlWbTVLVUZWVU1Eaz0= [-]第4次解密结果:Vm10YVlWVXhUblJXYmtwUFZsWmFXRlpyVm5KUFVUMDk= [-]第5次解密结果:VmtaYVUxTnRWbkpPVlZaWFZrVnJPUT09 [-]第6次解密结果:VkZaU1NtVnJOVVZXVkVrOQ== [-]第7次解密结果:VFZSSmVrNUVWVEk9 [-]第8次解密结果:TVRJek5EVTI= [-]第9次解密结果:MTIzNDU2 [-]第10次解密结果:123456
实际应用
例如快速执行sql文件时,我们在shell脚本中只需要写上加密后的串,并附带解密函数:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15#!/bin/bash function deCode() { #参数1: 加密串内容 passDstr=$1 #参数2: 密码解析次数 for i in `seq 1 $2` do passDstr=`echo $passDstr |python -c "import base64;s=input(); print(base64.b64decode(s.encode()).decode());"` done } #使用加密10次的密文 mysqlPass="Vm0wd2QyVkZNVWRpUm1ScFVtMVNXRll3Wkc5V2JHeDBaVVYwV0ZKdGVEQmFSV2hyVm14S2MyTkljRmROYWtaSVZqQmFTMk15VGtsaVJtUnBWa1phVFZac1ZtRldNVnBXVFZWV2FHVnFRVGs9" deCode $mysqlPass 10 mysql -uroot -p${passDstr} -e "show databases;"
执行结果如下:
复制代码
1
2
3
4
5
6
7
8
9mysql: [Warning] Using a password on the command line interface can be insecure. +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+
当然实际上如果能改脚本,加一个echo密码就出来了....这篇文章只是让我们在日常工作中隐藏明文密码,以避免不必要的系统风险。
最后
以上就是隐形手链最近收集整理的关于Shell脚本中不明文显示密码的全部内容,更多相关Shell脚本中不明文显示密码内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复