linux脚本对登录密码加密,shell 脚本明文密码加密小工具
password_encryption.sh 脚本 ,
是一个使用shell 命令写的脚本;是对明文密码加密的小工具;基于aes-256进行封装的 ;解决密码繁多的困扰,使用该脚本,只需记住一个密码,其余密码进行加密存储,记不住时,可再用该工具解密;
需要 openssl 依赖服务,一般linux 上都可有该服务
Centos6、7、 Ubuntu 20.04 LTS 上测试正常使用
[root@centos-mini ~]# vim password_encryption.sh
#!/bin/bash
#
#
# Author: Hao Chuanfeng
# Date of production:2019-7-17
# Update: 2020-5-24
# Description: For password encryption, you don't need to remember many passwords, just one password
# 描述:用于密码加密,便于存放,但不会被人盗取
#颜色
HASTTY=1
red_echo () { [ "$HASTTY" != "1" ] && echo "$@" || echo -e "\033[031;1m$@\033[0m"; }
green_echo () { [ "$HASTTY" != "1" ] && echo "$@" || echo -e "\033[032;1m$@\033[0m"; }
yellow_echo () { [ "$HASTTY" != "1" ] && echo "$@" || echo -e "\033[033;1m$@\033[0m"; }
blue_echo () { [ "$HASTTY" != "1" ] && echo "$@" || echo -e "\033[034;1m$@\033[0m"; }
purple_echo () { [ "$HASTTY" != "1" ] && echo "$@" || echo -e "\033[035;1m$@\033[0m"; }
bred_echo () { [ "$HASTTY" != "1" ] && echo "$@" || echo -e "\033[041;1m$@\033[0m"; }
bgreen_echo () { [ "$HASTTY" != "1" ] && echo "$@" || echo -e "\033[042;1m$@\033[0m"; }
byellow_echo () { [ "$HASTTY" != "1" ] && echo "$@" || echo -e "\033[043;1m$@\033[0m"; }
bblue_echo () { [ "$HASTTY" != "1" ] && echo "$@" || echo -e "\033[044;1m$@\033[0m"; }
bpurple_echo () { [ "$HASTTY" != "1" ] && echo "$@" || echo -e "\033[045;1m$@\033[0m"; }
bgreen_echo () { [ "$HASTTY" != "1" ] && echo "$@" || echo -e "\033[042;34;1m$@\033[0m"; }
#用法
Usage () {
red_echo "ERROR"
echo -e "Usage: $0 { -e 明文密码| -d 加密密码 }"
echo -e "*********************** selection ***********************"
echo -e "参数选项:"
blue_echo "\t-e ecrypt 对明文密码加密(不能与 -d 连用)"
blue_echo "\t-d decrypt 对加密密码还原为明文(不能与 -e 连用)\n"
}
#传参
Parameter () {
while getopts ":e:d:h" opt
do
case $opt in
e)
EPASSWD=$OPTARG
#echo "参数e的值$OPTARG"
;;
d)
DPASSWD=$OPTARG
#echo "参数d的值$OPTARG"
;;
h)
Usage
exit 1
;;
*)
Usage
exit 2
esac
done
[ "$EPASSWD" == "" -a "$DPASSWD" == "" ] && Usage && exit 3
[ "$EPASSWD" != "" -a "$DPASSWD" != "" ] && Usage && exit 4
[ $# -eq 0 ] && Usage
}
#密码(salt值)
Password () {
#echo -e "请输入密码: \c"
salt=''
while : ;
do
read -n 1 -s -p "" pw
if [ $pw ]; then
salt=${salt}$pw
# 如果不需要显示 * ,把这条命令删掉即可
echo -e "*\c"
else
echo
break
fi
done
}
#密码加密
mi_ma_jia_mi () {
for n in 1 2;do
[ $n -eq 1 ] && echo -e "请输入加密密码: \c"
[ $n -eq 2 ] && echo -e "请再次输入加密密码: \c"
Password
export salt_$n="$salt"
done
# 两次输入的判断密码一致性
[ "${salt_1}" != "${salt_2}" ] && red_echo "两次输入的密码不一致" && exit 3
# 密码的位数不能小于8
length=`expr length "$salt"`
(( $length < 8 )) && red_echo "密码不能小于8位数" && exit 1
# 密码中必须存在数字、字母
salt_check=$(echo $salt|sed s'/./& /g')
for n in $salt_check;do
for m in {a..z} {A..Z};do
[ "$n" == "$m" ] && word=$n
done
for m in {1..9};do
[ "$n" == "$m" ] && num=$n
done
done
[ "$word" == "" ] && echo 密码中必须存在数字、字母 && exit 4
[ "$num" == "" ] && echo 密码中必须存在数字、字母 && exit 5
PASSWD=`echo "$1" | openssl enc -aes-256-cbc -a -salt -pass pass:$salt` && green_echo "加密后的密码:$PASSWD"
}
# 密码解密
mi_ma_jie_mi () {
echo -e "请输入解密密码: \c"
Password
a=`echo $1|openssl enc -aes-256-cbc -a -d -salt -pass pass:$salt 2>/dev/null`
[ "$a" == "" ] && red_echo "输入的密码不正确" || green_echo "明文密码:$a"
}
# 调用函数
Parameter $@
[ "$EPASSWD" != "" ] && mi_ma_jia_mi $EPASSWD
[ "$DPASSWD" != "" ] && mi_ma_jie_mi $DPASSWD
password_encryption.sh 使用用法, 解密,加密 使用案例:
#使用方法
[root@centos-mini ~]# bash password_encryption.sh
ERROR
Usage: password_encryption.sh { -e 明文密码| -d 加密密码 }
*********************** selection ***********************
参数选项:
-e ecrypt 对明文密码加密(不能与 -d 连用)
-d decrypt 对加密密码还原为明文(不能与 -e 连用)
#加密密码
[root@centos-mini ~]# bash password_encryption.sh -e 123456
请输入加密密码: **********
请再次输入加密密码: **********
加密后的密码:U2FsdGVkX195bV5j35v87+HM+jkQhtDs48c65s+MIds=
#解密密码
[root@centos-mini ~]# bash password_encryption.sh -d U2FsdGVkX195bV5j35v87+HM+jkQhtDs48c65s+MIds=
请输入解密密码: **********
明文密码:123456
[root@centos-mini ~]#
linux脚本对登录密码加密,shell 脚本明文密码加密小工具相关推荐
- shell实例第18讲:利用gzexe加密shell脚本
利用gzexe加密shell脚本 gzexe_test.sh内容如下: #!/bin/bashecho "gzexe test!" 结果: 使用gzexe加密shell脚本命令:g ...
- 如何使用 SHC 加密 Shell 脚本
如何在Linux环境中加密shell脚本?shell脚本包含密码,不希望其他具有执行权限的人查看shell脚本并获取密码.可以安装使用shc工具,普通用户无法读取shc创建的加密Shell脚本.SHC ...
- 使用shc加密shell脚本
转自:http://www.cnblogs.com/dba001/archive/2011/01/17/1937768.html 采用shc工具加密Shell脚本,以提高shell脚本文件的安全性. ...
- c语言加密shell脚本,shell脚本加密
如何保护自己编写的shell程序 要保护自己编写的shell脚本程序,方法有很多,最简单的方法有两种:1.加密 2.设定过期时间,下面以shc工具为例说明: 一.下载安装shc工具 shc是一个加密s ...
- Linux配置脚本导出运行,linux服务器部署jar包以及shell脚本的书写
背景:记录在linux环境下部署jar程序的过程 1 部署过程记录 1.1 程序结构 这里的main函数就在DemRest2.java 文件中. 为了部署方便,要做到以下两点: 1 在导出的jar包中 ...
- linux 递归删除 空目录命令,使用shell脚本实现递归删除空目录
平时一般使用php脚本实现一些文件管理功能,总归没有shell脚本强大,虽然本人不会写shell脚本,但是读懂shell脚本还是没问题的.对于"递归删除空目录"这样简单的功能使用p ...
- 嵌入式 Linux 入门(五、Shell 脚本编程上:认识 Shell 脚本)
大家好,是矜辰所致,嵌入式 Linux入 门第五课,本课开始简单学习一下 Shell 脚本编程. 目录 前言 一.Shell 脚本基础说明 1.1 什么是 Shell 脚本 1.2 Shell 脚本的 ...
- linux exec 脚本之家,详解Shell脚本中调用另一个Shell脚本的三种方式
主要以下有几种方式: Command Explanation fork 新开一个子 Shell 执行,子 Shell 可以从父 Shell 继承环境变量,但是子 Shell 中的环境变量不会带回给父 ...
- 20.27 分发系统介绍 20.28 expect脚本远程登录 20.29 expect脚本远程执行
20.27 分发系统介绍 20.28 expect脚本远程登录 20.29 expect脚本远程执行命令 20.30 expect脚本传递参数 20.27 分发系统介绍 分发系统,什么叫分发系统,首先 ...
- 在UNIX \ Linux终端中的可视化磁盘空间和磁盘使用情况小工具 - Vizex
在UNIX\ Linux终端中的可视化磁盘空间和磁盘使用情况小工具 - Vizex 背景-什么是Vizex Linux终端上安装方法 如何使用Vizex 1. vezix 2. vizexdf 3. ...
最新文章
- Linux下统计当前文件夹下的文件个数、目录个数
- php mb strimwidth,wordpress截断函数mb_strimwidth()失效的解决方法
- 低功耗蓝牙BLE对应Gatt的UUID
- windows下使用curl以及常用curl命令
- 用位运算实现四则运算之加减乘除(用位运算求一个数的1/3)
- java 中的堆和栈
- 单片机(MCU)如何才能不死机之对齐访问(Aligned Access)
- 凸优化第九章无约束优化 9.3 梯度下降方法
- 大数据培训(第一季) java基础-徐培成-专题视频课程
- react native与夜神模拟器结合使用运行安卓平台
- 黑马程序员---继承(下)
- vim 的 markdown 预览
- python切片练习(League of Legends)
- 有什么软件做笔记比较好用?
- 【Paper】2022_Fixed-Time Cooperative Tracking for Delayed Disturbed Multi-Agent Systems Under Dynamic
- 《Presto(Trino)——The Definitive Guide》CHAPTER 6 Connectors Advanced CHAPTER 7 Connector Examples
- 2021Java面经:【漫画(2)
- 基于QT的华为网络摄像头二次开发
- Ceph分布式存储详述
- jsplumb使用过程中可能碰见的一些问题
热门文章
- SATA接口Raid、AHCI、IDE三种模式
- UE4蓝图版简易背包系统
- 计算机上面的清除键是什么符号,电脑上删除键是哪一个
- fcm基本原理_fcm聚类算法原理及应用
- 带通滤波器中心频率计算公式中R是哪个值_手把手教系列之IIR数字滤波器设计实现...
- 时域,频域与傅立叶变换 - 慕水 - CSDNBlog
- 常用的浏览器及其内核
- 软件工程导论01-概论
- 在计算机系统中对文件执行彻底删除,Windows系统中,教你彻底删除C盘的顽固文件,瞬间多出10个G!...
- linux 进程 清理,linux 如何清理僵尸进程