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

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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理