0,今天遇到一个需求,就是提取用户的姓名和手机号,但是默认手机号是加密的,这里就需要批量解密数据然后和姓名一起输出到文件!
下面通过批量加/解密数据来演示一下如何通过system()函数来调用系统命令
1, 编写user.sql文件,内容如下:
1 | 张三 1111111111 |
2, 使用base64进行批量加密
1 | [root@stark shell]# cat user.sql |awk '{print $1;system("echo "$2" |base64")}' |xargs -n2 |
姓名无需加密,所以直接print出来,到手机号这里也就是$2就需要进行加密操作了,system()函数只需要将属于shell命令的地方用双引号引起来就好了,注意引号里命令的”空格”,使用”xargs -n2”是为了让数据在一行显示
3, 使用md5sum进行批量加密
1 | [root@stark shell]# cat user.sql |awk '{print $1;system("echo "$2" |md5sum |xargs -d'-'")}' |xargs -n2 |
– 和上次不一样的地方是,使用md5sum加密之后会在密值后面多出一个’-‘号,所以使用xargs删掉这个符号. –
4, 下面来解密一下数据是否正确
1 | [root@stark shell]# cat user.sql |
解密后的结果
1 | [root@stark shell]# cat user.sql |awk '{print $1;system("echo "$2" |base64 -d")}' |xargs -n2 |