共计 2007 个字符,预计需要花费 6 分钟才能阅读完成。
1、依赖
<!-- 数据库加密配置 -->
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
2、生成加密账号密码
public class Encryption {public static void main(String[] args) {
String username = "root";
String password = "root";
System.out.println("待加密名称:" + username);
System.out.println("待加密明码:" + password);
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
encryptor.setAlgorithm("PBEWithMD5AndDES");// 这是加密形式,采纳 MD5 和 DES 的对称加密
encryptor.setPassword("root");// 这是加盐,salt。减少密文不被撞破的概率
String enc_name = encryptor.encrypt(username);
String enc_pwd = encryptor.encrypt(password);
System.out.println("加密后名称:" + enc_name);
System.out.println("加密后明码:" + enc_pwd);
String redisPwd = "Password123@mysql";
String enc_redis = encryptor.encrypt(redisPwd);
System.out.println("redis Pwd 解密后:" + enc_redis);
String dec_name = encryptor.decrypt(enc_name);
String dec_pwd = encryptor.decrypt(enc_pwd);
System.out.println("解密后名称:" + dec_name);
System.out.println("解密后明码:" + dec_pwd);
}
}
3、配置文件加密
server-username=ENC(NMUJ7h1cqq9J7g4Hkn0yag==)
server-password=ENC(Er7T1RxNCsAgbXBejhLrrw==)
# 能够加在配置文件解密(然而有危险,能够通过 jar 启动退出配置)jasypt.encryptor.password=root
4、jar 命令退出
nohup java -jar -Djasypt.encryptor.password=root ${APP_NAME} > ${APP_LOG} 2>&1 &
5、shell 命令启动
# 替换这里 jar 包的门路,其它代码无需更改
APP_NAME=/data/app/xxx.jar
APP_LOG=/data/app/xxx.log
#应用阐明,用来提醒输出参数
usage() {echo "Usage: sh xxx.sh [start|stop|restart|status]"
exit 1
}
#检查程序是否在运行
is_exist(){pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
#如果不存在返回 1,存在返回 0
if [-z "${pid}" ]; then
return 1
else
return 0
fi
}
#启动办法
start(){
is_exist
if [$? -eq 0]; then
echo "${APP_NAME} is already running. pid=${pid}"
else
nohup java -jar -Djasypt.encryptor.password=root ${APP_NAME} > ${APP_LOG} 2>&1 &
fi
}
#进行办法
stop(){
is_exist
if [$? -eq "0"]; then
kill -9 $pid
else
echo "${APP_NAME} is not running"
fi
}
#输入运行状态
status(){
is_exist
if [$? -eq "0"]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is NOT running."
fi
}
#重启
restart(){
stop
sleep 5
start
}
#依据输出参数,抉择执行对应办法,不输出则执行应用阐明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac
正文完