1. openssl实现加解密、哈希
1.1 openssl实现AES加解密
-
老大说,不能在shell脚本放明文密码
-
自己的第一反应:我先在本地AES加密得到密文,然后将密文写入shell脚本
-
网上搜索了一下,openssl可以满足需求
-
直接基于字符串加解密(AES-256)
# 直接基于字符串加密 echo "明文" | openssl enc -aes-256-cbc -a -salt -pass pass:密码 # 直接基础字符串解密, -d表示解密 echo "密文" | openssl enc -aes-256-cbc -a -d -salt -pass pass:密码
-
示例
echo "hello, world" | openssl enc -aes-256-cbc -a -salt -pass pass:12345678 echo "U2FsdGVkX1+8LczdI2MWVt4rW7VLxCYgCcQcftPwvqg=" | openssl enc -aes-256-cbc -a -d -salt -pass pass:12345678
-
对文件进行AES加解密
# 文件加密 openssl enc -aes-256-cbc -a -salt -pass pass:123456 -in source_file_name -out target_file_name # 文件解密 openssl enc -aes-256-cbc -a -d -salt -pass pass:123456 -in source_file_name -out target_file_name
-
示例
# 文件加密 openssl enc -aes-256-cbc -a -salt -pass pass:123456 -in hello.txt -out hello.txt.enc # 文件解密 openssl enc -aes-256-cbc -a -d -salt -pass pass:123456 -in hello.txt.enc -out hello
1.2 openssl实现SHA-256计算
-
计算SHA-256
# 基于文件计算SHA-256 openssl dgst -sha256 file_name # 基于字符串计算SHA-256 echo "明文" | openssl dgst -sha256
-
示例
# 基于文件计算SHA-256 openssl dgst -sha256 hello.txt # 基于字符串计算SHA-256 echo "hello" | openssl dgst -sha256
参考链接
2. 安装软件
-
centos中,安装一个软件的命令如下
yum install xxx
-
手动安装,我们发现可能需要输入一个
y
,去确认安装
-
新需求:通过shell脚本去安装某些软件,如何避免交互输入?
-
添加
-y
,表示对后续所有问题,都回答yesyum install xxx -y
-
-y
的作用: -
参考文档:利用shell脚本自动安装软件
3. 去除字符串中的空格
-
最近处理输出结果时,输出的数据格式有点混乱,
|
前后的空格不确定/dev/sda1 | 1.8T | 356GB >> 12
-
我希望获取第二列的
1.8T
,为了简单自己直接awk -F '|'
做切割echo "/dev/sda1 | 1.8T | 356GB >> 12" | awk -F '|' '{print $2}'
-
截取出来的数据带有空格
-
需求:去除字符串中的空格
-
感谢stackoverflow:How to trim whitespace from a Bash variable?,在命令的最后在添加如下命令便可以去除字符串中的空格(任意位置)
sed -r 's/( )+//g'
-
执行效果示例