Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat:AES 암호화 방식 유틸리티 추가#15 #16

Open
wants to merge 5 commits into
base: feature/#13-login
Choose a base branch
from

Conversation

kamser0415
Copy link
Collaborator

#️⃣ 연관된 이슈

#15 암호화 추가

📝작업 내용

이메일, 핸드폰 번호를 암호화하기 위해 AES 유틸리티를 추가 했습니다.

✒️ 코드 변경 이유

  • 개인 정보를 보호하기 위해 추가되었습니다.

💬리뷰 요구사항(선택)

대칭키 비밀키를 만들 때 128,192,256 bits를 입력하는 방법으로 만들 경우 비밀키를 별도로 보관하고 읽어버릴 경우 다시 찾기 매우 어렵다고 생각했습니다. 그래서 패스워드,salt를 가지고 비밀키를 만드는 방법을 선택했습니다.
그런데 이 패스워드와 salt를 어떻게 보관하는 것이 좋을지 고민입니다.

객체지향 체조 3가지 확인📌

  • 한 줄에 점을 하나만 찍는다.
  • else 키워드를 쓰지 않는다.
  • 일급 컬렉션을 사용한다.

@kamser0415 kamser0415 changed the base branch from main to feature/#11-sign-up October 27, 2024 14:45
@kamser0415 kamser0415 changed the base branch from feature/#11-sign-up to features October 30, 2024 09:23
@kamser0415 kamser0415 changed the base branch from features to feature/#13-login October 30, 2024 09:26
@Slf4j 애노테이션을 클래스에 붙이면 자동으로 log 객체를 생성합니다.
log 객체를 직접 생성하지 않고 log 메서드를 사용할 수 있습니다.
*/
@Slf4j
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

해당 어노테이션의 동작방식에 대해서도 적어주시면 더 좋을 것 같습니다.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

네 추가했습니다 :)

private static final String ALGORITHM = "AES/CBC/PKCS5Padding";
/**
* TODO
* 패스워드와 salt를 어떻게 보관할 것인지 고민입니다.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

password 와 salt 의 차이는 무엇인가요? application.yml 에 보관하는 것은 어떨까요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

password는 암호화 및 복호화를 위해 필요한 key입니다
동일한 key를 가지고 만든 암호화 데이터는 모두 같은 key를 통해 복호화가 가능하므로 보안상 위험합니다.
따라서 password에 salt의 임의의 값을 추가하여 암호화를 하는 경우에는 암호화 결과가 다르게 나오게 됩니다.

현재 로직에서는 고정된 salt를 사용하여 salt를 사용하는 의미가 없어졌습니다.

}

private static IvParameterSpec generateIv() {
byte[] iv = new byte[16];
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

매직넘버는 상수로 뺴는 것이 좋습니다.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

네 수정하겠습니다 !!

Copy link
Collaborator

@f-lab-jd f-lab-jd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants