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);
    }
}

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

LLL_
15 声望3 粉丝