작성
·
254
0
안녕하세요! 강의 잘 듣고 있는 학생입니다.
UserEntity.java
@Column(nullable = false, unique = true)
private String encryptedPwd;
이 부분에서 질문이 있는데요.
유저끼리 우연히 같은 암호를 가질 수 있고, 그것을 암호화 한 비밀번호는 같을 수도 있지 않나요 ??
제가 암호화에 대한 지식이 없어서 잘 못 생각한 것일 수도 있지만 의문이 생겨서 질문드려요 😃
------------------------------------------------
추가로 아래 질문에 질문 댓글을 달았는데 확인하기 어려울 수 있으실 것 같아 여기에 링크 달아둡니다.
질문 달아주시면 이 부분은 삭제할게요 !
https://www.inflearn.com/questions/255305
답변 2
1
안녕하세요, 이도원입니다.
올려주신 게시물에 추가 질문이 있었는지 몰랐네요. 죄송합니다. ^^;
말씀하신 것처럼 사용자가 설정하는 암호가 같은 경우도 발생할 수 있습니다. 다만, 강의에서는 사용자의 암호를 암호화하지 않고 그대로(평문, plain text) 저장하는 것이 아니라, 암호화 하여 저장하게 되며, BCryptPasswordEncode를 이용하여 암호화 하는 경우는 BCrypt 해시 함수를 이용해 암ㄹ호를 해시하는 PasswordEncoder입니다. BCrypt 해시 함수는 Blowfish 암호를 기반으로 설계된 암호화 함수로써 현재까지 사용중인 가장 강력한 해시 메커니즘 중 하나입니다. (참고로, 해시 함수란, 입력 값(메시지)를 고정된 길이의 해시 값으로 출력해 주며, 입력 값의 일부만 변경하여도 다른 결과 값을 출력하고, 출력된 결과 값을 토대로 입력값을 유추하기 어렵게 해 줍니다)
따라서, 사용자의 암호가 암호화 되어 저장되는 경우 암호화 된 값이 중복되지 않게 처리 되어 저장됩니다.
감사합니다.
0
다음 강의를 보니까 답이 나와있었네요 😢
BCryptPasswordEncoder에서 랜덤 Salt를 사용하기 때문에 같은 패스워드일지라도 다른 값으로 암호화된다고 이해했습니다.