-
[JAVA ]암호화와 복호화를 활용한 간단한 콘솔 로그인 예제 3/3WEB/BACK 2021. 5. 6. 14:36반응형
이번포스팅은 앞시간에 다뤘던 간단한 로그인 예제에다가 암호화, 복호화를 적용한 실습을 해보도록 하겠습니다.
목차
- 암호화와 복호화에 대하여 (feat , SHA512 예제) blumint.tistory.com/13
- 자바 기본 로그인 예제 blumint.tistory.com/14
- 자바 기본 로그인 예제 + 암호화 복호화 활용하기
전체 코드
public class LoginSHA { //salt생성 public static String Salt() { String salt=""; try { SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); byte[] bytes = new byte[16]; random.nextBytes(bytes); salt = new String(Base64.getEncoder().encode(bytes)); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return salt; } //sha512 public static String SHA512(String password, String hash) { String salt = hash+password; String hex = null; try { MessageDigest msg = MessageDigest.getInstance("SHA-512"); msg.update(salt.getBytes()); hex = String.format("%128x", new BigInteger(1, msg.digest())); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return hex; } //test public static void main(String[] args) { Scanner scan = new Scanner(System.in); int num = 0; System.out.println("-----회원 가입-----"); System.out.println("id 입력 :"); String id = scan.nextLine(); System.out.println("pw 입력 :"); String pw = scan.nextLine(); //salt값 생성 String salt = Salt(); System.out.println("(salt 생성 완료="+salt+")"); //암호화 String pw_encrypt = SHA512(pw, salt); System.out.println("(암호화된 비밀번호이자 db에 저장될 문자열="+pw_encrypt+")"); System.out.println("-----가입 완료-----"); boolean go = true; System.out.println("-----로 그 인-----"); System.out.println("id 입력 :"); String id_input = scan.nextLine(); while(go) { if(id.equals(id_input)) { System.out.println("pw 입력 :"); String pw_input = scan.nextLine(); //복호화 String pw_decrypt = SHA512(pw_input, salt); if( pw_decrypt.equals(pw_encrypt)) { System.out.println("-----"+id+"님 로그인 성공-----"); go = false;//while문 나가기 }else { num++; System.out.println("-----비밀번호 틀림. 다시 입력해주세요-----"+num+"회 시도"); } }else { System.out.println("---- 없는 아이디 입니다. 다시 입력해주세요"); System.out.println("id 입력 :"); id_input = scan.nextLine(); } } } }
결과
-----회원 가입-----
id 입력 : admin
pw 입력 : qwer12
(salt 생성 완료=vKEmYPYEW7h70I7Ir9TENA==)
(암호화된 비밀번호이자 db에 저장될 문자열9389e88d501c035360e58e9891537a989db6609cbbcacf47372159f6ec6f3929b4bb2842991a704d2f430fccb77b390cffd4bbf527ab371ec0b5fc7914c11d)
-----가입 완료-----
-----로 그 인-----
id 입력 : a
---- 없는 아이디 입니다. 다시 입력해주세요
id 입력 :
admin
pw 입력 :
aaa
-----비밀번호 틀림. 다시 입력해주세요-----1회 시도
pw 입력 :
asd -----비밀번호 틀림. 다시 입력해주세요-----2회 시도
pw 입력 :
qwer12
-----admin님 로그인 성공-----장장 3부에 걸친(그러나 간단한) sha512를 이용한 간단한 자바 로그인을 다뤄보았습니다. 도움이 되었길 바라며 그럼이만 다음포스팅에서 뵙도록하겠습니다.
2021.05.06 - [WEB/BACK] - [JAVA ]암호화와 복호화를 활용한 간단한 콘솔 로그인 예제 2/3 (자바 기본 로그인 예제)
반응형'WEB > BACK' 카테고리의 다른 글