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.jarAPP_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