인프런 커뮤니티 질문&답변

hykim001kr님의 프로필 이미지
hykim001kr

작성한 질문수

스프링 시큐리티

3) 사용자 DB 등록 및 PasswordEncoder

암호화 타입을 변경할려면 어떻게 해야 하나요?

작성

·

1.1K

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
안녕하세요.
강의 잘 듣고 있습니다.
 
기본이 bcrypt 인데 이걸 md5 로 변경해서 암호화 할려면 어떻게 해야 하나요?
 
감사합니다. ^.^
public static PasswordEncoder createDelegatingPasswordEncoder() {
String encodingId = "bcrypt";
Map<String, PasswordEncoder> encoders = new HashMap();
encoders.put(encodingId, new BCryptPasswordEncoder());
encoders.put("ldap", new LdapShaPasswordEncoder());
encoders.put("MD4", new Md4PasswordEncoder());
encoders.put("MD5", new MessageDigestPasswordEncoder("MD5"));
encoders.put("noop", NoOpPasswordEncoder.getInstance());
encoders.put("pbkdf2", new Pbkdf2PasswordEncoder());
encoders.put("scrypt", new SCryptPasswordEncoder());
encoders.put("SHA-1", new MessageDigestPasswordEncoder("SHA-1"));
encoders.put("SHA-256", new MessageDigestPasswordEncoder("SHA-256"));
encoders.put("sha256", new StandardPasswordEncoder());
encoders.put("argon2", new Argon2PasswordEncoder());
return new DelegatingPasswordEncoder(encodingId, encoders);
}

답변 2

1

정수원님의 프로필 이미지
정수원
지식공유자

네 

public static PasswordEncoder createDelegatingPasswordEncoder() {
String encodingId = "bcrypt";
Map<String, PasswordEncoder> encoders = new HashMap<>();
encoders.put(encodingId, new BCryptPasswordEncoder());
encoders.put("ldap", new org.springframework.security.crypto.password.LdapShaPasswordEncoder());
encoders.put("MD4", new org.springframework.security.crypto.password.Md4PasswordEncoder());
encoders.put("MD5", new org.springframework.security.crypto.password.MessageDigestPasswordEncoder("MD5"));
encoders.put("noop", org.springframework.security.crypto.password.NoOpPasswordEncoder.getInstance());
encoders.put("pbkdf2", new Pbkdf2PasswordEncoder());
encoders.put("scrypt", new SCryptPasswordEncoder());
encoders.put("SHA-1", new org.springframework.security.crypto.password.MessageDigestPasswordEncoder("SHA-1"));
encoders.put("SHA-256",
new org.springframework.security.crypto.password.MessageDigestPasswordEncoder("SHA-256"));
encoders.put("sha256", new org.springframework.security.crypto.password.StandardPasswordEncoder());
encoders.put("argon2", new Argon2PasswordEncoder());
return new DelegatingPasswordEncoder(encodingId, encoders);
}

위 소스를 보시면 

new DelegatingPasswordEncoder(encodingId, encoders)

결국 빈 생성은 이 객체를 생성해서 리턴해 주고 있기 때문에  위 코드를 참조해서 아래와 같이 하시면 될 것 같습니다.

@Bean

public PasswordEncoder passwordEncoder() {

  String encodingId = "MD5";

   Map<String, PasswordEncoder> encoders = new HashMap<>();  

   encoders.put("MD5", new MessageDigestPasswordEncoder("MD5"));

   return new DelegatingPasswordEncoder(encodingId, encoders)

}

0

hykim001kr님의 프로필 이미지
hykim001kr
질문자

답변 감사합니다 ~~~

hykim001kr님의 프로필 이미지
hykim001kr

작성한 질문수

질문하기