jasypt 통합 SpringBoot 데이터베이스 암호 화 작업

어제 한 편의 글 을 보 았 는데 모모 계열 의 호텔 데이터 베 이 스 는 프로그래머 가 부주의 로 데이터베이스 에 명문 비밀 번 호 를 GitHub 에 올 려 호텔 데이터 등록 자료,입주 정 보 를 만 들 었 고 주택 개설 기록 이 다운 로드 돼 되 팔 렸 다 는 소식 을 기록 했다 고 한다.
프로그래머 로 서 개발 할 때 간단 하기 위해 계 정 은 모두 간단 합 니 다.기본적으로 데이터베이스 비밀 번 호 는 명문 입 니 다.아무런 조작 도 하지 않 았 습 니 다.적어도 제 가 머 물 렀 던 회 사 는 모두 이 렇 습 니 다.테스트 환경 이 든 온라인 환경 이 든 생각해 보면 이것 도 안전 위험 입 니 다.여기 서 바 쁘 지 않 을 때 springboot 기반 데이터 베이스 비밀 번 호 를 암호 화 합 니 다.
1.pom.xml 에 jar 패키지 추가(jdk 에 따라 다른 버 전 선택):

<!-- jdk8      jasypt         -->
<dependency>
  <groupId>com.github.ulisesbocchio</groupId>
  <artifactId>jasypt-spring-boot-starter</artifactId>
  <version>1.14</version>
</dependency>
<!-- jdk7  -->
<dependency>
  <groupId>com.github.ulisesbocchio</groupId>
  <artifactId>jasypt-spring-boot-starter</artifactId>
   <version>1.5-java7</version>
</dependency>
<!-- jdk6  -->
<dependency>
  <groupId>com.github.ulisesbocchio</groupId>
  <artifactId>jasypt-spring-boot-starter</artifactId>
   <version>1.5-java6</version>
</dependency>
2.window 창 에서 명령 창 을 열 고 명령 을 입력 합 니 다:
java -cp D:\mavenspace\repository\org\jasypt\jasypt\1.9.2\jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="123456" password=allanpassword algorithm=PBEWithMD5AndDES
자바 Ccp jar 패키지 가 있 는 경로\jar 패키지 org.jasypt.intf.cli.JasyptPBE String Encryption CLI input="당신 의 데이터베이스 비밀번호"password=암호 화 필드,알고리즘 을 임의로 설정 합 니 다=기본 PBE With MD5AndDES 암호 화
매개 변수 설명:
input=데이터베이스 링크 암호
password=암호 화 필드,임의로 설정(프로필 에 이 암 호 를 추가 해 야 합 니 다.약 속 된 암호 에 해당 합 니 다)
algorithm=알고리즘,기본 PBEWithMD5AndDES
명령 실행 후 그림:

----OUTPUT----------------------
Ekgkm+TzSmf7w7bcr90gMV6MAwj0waW+
OUTPUT 는 암호 화 된 암호 입 니 다.프로젝트 암 호 를 설정 할 때 ENC()와 결합 하여 사용 합 니 다.다음 그림:
3.프로젝트 에 설정 을 추가 합 니 다(springboot 를 예 로 들 면).그림:

\#데이터베이스 암호 화 설정

jasypt:
 encryptor:
password: allanpassword
spring MySQL    :
password: ENC(Ekgkm+TzSmf7w7bcr90gMV6MAwj0waW+)
4.springboot 시작 클래스 에 주 해 를 추가 하여 효력 을 발생 시 킵 니 다.

이상 설정 완료,프로젝트 실행 시작,데이터베이스 조회,성공!
추가 지식:SpringBoot(Spring)는 jasypt 를 사용 하여 암호 화 문 제 를 처리 합 니 다.
전경:프로필 에 있 는 명문 암호 유출 을 방지 하기 위해
1.의존 도입:(SpringBoot 에 대한)

<dependency> 
  <groupId>com.github.ulisesbocchio</groupId> 
  <artifactId>jasypt-spring-boot-starter</artifactId> 
  <version>1.8</version> 
</dependency> 
2.프로필 설정 매개 변수
\#복호화 할 때 사용 하 는 키 로 이해 할 수 있 습 니 다.(인증 정보 jasypt.encryptor.algorithm 설정 도 고려 할 수 있 습 니 다.)
jasypt.encryptor.password=youPassword
3.테스트 클래스 를 작성 하여 암호 화 된 암 호 를 받 습 니 다.

@Autowired 
StringEncryptor stringEncryptor; 
 
@Test 
public void encryptPwd() { 
  String result = stringEncryptor.encrypt("yourPassword"); 
  System.out.println(result);  
} 
4.프로필 의 명문 암 호 를 수정한다

spring.datasource.druid.first.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.druid.first.url=
spring.datasource.druid.first.username=root

spring.datasource.druid.first.password=ENC(AfHowGWt0tQ6LXRoJ7GkAlImTKkfDg1Y1Er)
5.명령 행 을 통 해 jasypt-1.9.2.jar 패키지 명령 을 실행 하여 암호 화 복호화
1.jar 패키지 가 있 는 디 렉 터 리 에서 명령 줄 을 열 고 다음 암호 화 명령 을 실행 합 니 다.
java-cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="명문"password=jasypt 설정 암호 알고리즘=PBEWithMD5AndDES
2.방금 암호 화 된 결 과 를 사용 하여 복호화 하고 다음 복호화 명령 을 수행 합 니 다.
java-cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBE StringDecryptionCLI input="암호 화 된 비밀문서"password=jasypt 설정 암호 algorithm=PBE WithMD5AndD
이상 의 jasypt 통합 SpringBoot 데이터베이스 암호 화 작업 은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 께 참고 가 되 고 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기