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 脚本明文密码加密小工具相关推荐

  1. shell实例第18讲:利用gzexe加密shell脚本

    利用gzexe加密shell脚本 gzexe_test.sh内容如下: #!/bin/bashecho "gzexe test!" 结果: 使用gzexe加密shell脚本命令:g ...

  2. 如何使用 SHC 加密 Shell 脚本

    如何在Linux环境中加密shell脚本?shell脚本包含密码,不希望其他具有执行权限的人查看shell脚本并获取密码.可以安装使用shc工具,普通用户无法读取shc创建的加密Shell脚本.SHC ...

  3. 使用shc加密shell脚本

    转自:http://www.cnblogs.com/dba001/archive/2011/01/17/1937768.html 采用shc工具加密Shell脚本,以提高shell脚本文件的安全性. ...

  4. c语言加密shell脚本,shell脚本加密

    如何保护自己编写的shell程序 要保护自己编写的shell脚本程序,方法有很多,最简单的方法有两种:1.加密 2.设定过期时间,下面以shc工具为例说明: 一.下载安装shc工具 shc是一个加密s ...

  5. Linux配置脚本导出运行,linux服务器部署jar包以及shell脚本的书写

    背景:记录在linux环境下部署jar程序的过程 1 部署过程记录 1.1 程序结构 这里的main函数就在DemRest2.java 文件中. 为了部署方便,要做到以下两点: 1 在导出的jar包中 ...

  6. linux 递归删除 空目录命令,使用shell脚本实现递归删除空目录

    平时一般使用php脚本实现一些文件管理功能,总归没有shell脚本强大,虽然本人不会写shell脚本,但是读懂shell脚本还是没问题的.对于"递归删除空目录"这样简单的功能使用p ...

  7. 嵌入式 Linux 入门(五、Shell 脚本编程上:认识 Shell 脚本)

    大家好,是矜辰所致,嵌入式 Linux入 门第五课,本课开始简单学习一下 Shell 脚本编程. 目录 前言 一.Shell 脚本基础说明 1.1 什么是 Shell 脚本 1.2 Shell 脚本的 ...

  8. linux exec 脚本之家,详解Shell脚本中调用另一个Shell脚本的三种方式

    主要以下有几种方式: Command Explanation fork 新开一个子 Shell 执行,子 Shell 可以从父 Shell 继承环境变量,但是子 Shell 中的环境变量不会带回给父 ...

  9. 20.27 分发系统介绍 20.28 expect脚本远程登录 20.29 expect脚本远程执行

    20.27 分发系统介绍 20.28 expect脚本远程登录 20.29 expect脚本远程执行命令 20.30 expect脚本传递参数 20.27 分发系统介绍 分发系统,什么叫分发系统,首先 ...

  10. 在UNIX \ Linux终端中的可视化磁盘空间和磁盘使用情况小工具 - Vizex

    在UNIX\ Linux终端中的可视化磁盘空间和磁盘使用情况小工具 - Vizex 背景-什么是Vizex Linux终端上安装方法 如何使用Vizex 1. vezix 2. vizexdf 3. ...

最新文章

  1. Linux下统计当前文件夹下的文件个数、目录个数
  2. php mb strimwidth,wordpress截断函数mb_strimwidth()失效的解决方法
  3. 低功耗蓝牙BLE对应Gatt的UUID
  4. windows下使用curl以及常用curl命令
  5. 用位运算实现四则运算之加减乘除(用位运算求一个数的1/3)
  6. java 中的堆和栈
  7. 单片机(MCU)如何才能不死机之对齐访问(Aligned Access)
  8. 凸优化第九章无约束优化 9.3 梯度下降方法
  9. 大数据培训(第一季) java基础-徐培成-专题视频课程
  10. react native与夜神模拟器结合使用运行安卓平台
  11. 黑马程序员---继承(下)
  12. vim 的 markdown 预览
  13. python切片练习(League of Legends)
  14. 有什么软件做笔记比较好用?
  15. 【Paper】2022_Fixed-Time Cooperative Tracking for Delayed Disturbed Multi-Agent Systems Under Dynamic
  16. 《Presto(Trino)——The Definitive Guide》CHAPTER 6 Connectors Advanced CHAPTER 7 Connector Examples
  17. 2021Java面经:【漫画(2)
  18. 基于QT的华为网络摄像头二次开发
  19. Ceph分布式存储详述
  20. jsplumb使用过程中可能碰见的一些问题

热门文章

  1. SATA接口Raid、AHCI、IDE三种模式
  2. UE4蓝图版简易背包系统
  3. 计算机上面的清除键是什么符号,电脑上删除键是哪一个
  4. fcm基本原理_fcm聚类算法原理及应用
  5. 带通滤波器中心频率计算公式中R是哪个值_手把手教系列之IIR数字滤波器设计实现...
  6. 时域,频域与傅立叶变换 - 慕水 - CSDNBlog
  7. 常用的浏览器及其内核
  8. 软件工程导论01-概论
  9. 在计算机系统中对文件执行彻底删除,Windows系统中,教你彻底删除C盘的顽固文件,瞬间多出10个G!...
  10. linux 进程 清理,linux 如何清理僵尸进程