失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > linux脚本对登录密码加密 shell 脚本明文密码加密小工具

linux脚本对登录密码加密 shell 脚本明文密码加密小工具

时间:2020-12-10 01:29:54

相关推荐

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:-7-17

# Update: -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 脚本明文密码加密小工具》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。