关于java:配置文件密码加密

41次阅读

共计 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

正文完
 0