package kr.co.gt1000.security; import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; import org.springframework.security.authentication.encoding.ShaPasswordEncoder; public class SpringSecurityShaPasswordEncoderTest { int ITERATION_NUMBER = 1000; String salt = null; String plainTextPassword = "test"; @Before public void init() throws Exception { salt = BCryptSalt.gensalt(); } @Test public void POJO_SpringSecurity_암호화값_비교() throws Exception { // POJO 암호화 값 String encodePassword = null; // SpringSecurity 암호화 값 String springEncodePassword = null; SpringSecurityShaPasswordEncoder springSecurityShaPasswordEncoder = new SpringSecurityShaPasswordEncoder(256); encodePassword = springSecurityShaPasswordEncoder.encodePassword(plainTextPassword, null); ShaPasswordEncoder shaPasswordEncoder = new ShaPasswordEncoder(256); springEncodePassword = shaPasswordEncoder.encodePassword(plainTextPassword, null); assertEquals(encodePassword, springEncodePassword); System.out.println("encodePassword =======> " + encodePassword); System.out.println("springEncodePassword => " + springEncodePassword); System.out.println(); } @Test public void POJO_SpringSecurity_암호화값_iterator_비교() throws Exception { // POJO 암호화 값 String encodePassword = null; // SpringSecurity 암호화 값 String springEncodePassword = null; SpringSecurityShaPasswordEncoder springSecurityShaPasswordEncoder = new SpringSecurityShaPasswordEncoder(256); springSecurityShaPasswordEncoder.setIterations(1000); encodePassword = springSecurityShaPasswordEncoder.encodePassword(plainTextPassword, null); ShaPasswordEncoder shaPasswordEncoder = new ShaPasswordEncoder(256); shaPasswordEncoder.setIterations(1000); springEncodePassword = shaPasswordEncoder.encodePassword(plainTextPassword, null); assertEquals(encodePassword, springEncodePassword); System.out.println("encodePassword 1000 iterator =======> " + encodePassword); System.out.println("springEncodePassword 1000 iterator => " + springEncodePassword); System.out.println(); } @Test public void POJO_SpringSecurity_암호화값_base64_비교() throws Exception { // POJO 암호화 값 String encodePassword = null; // SpringSecurity 암호화 값 String springEncodePassword = null; SpringSecurityShaPasswordEncoder springSecurityShaPasswordEncoder = new SpringSecurityShaPasswordEncoder(256); springSecurityShaPasswordEncoder.setIterations(1000); springSecurityShaPasswordEncoder.setEncodeHashAsBase64(true); encodePassword = springSecurityShaPasswordEncoder.encodePassword(plainTextPassword, null); ShaPasswordEncoder shaPasswordEncoder = new ShaPasswordEncoder(256); shaPasswordEncoder.setIterations(1000); shaPasswordEncoder.setEncodeHashAsBase64(true); springEncodePassword = shaPasswordEncoder.encodePassword(plainTextPassword, null); assertEquals(encodePassword, springEncodePassword); System.out.println("encodePassword 1000 iterator base64 =======> " + encodePassword); System.out.println("springEncodePassword 1000 iterator base64 => " + springEncodePassword); System.out.println(); } }