자바 비밀번호 암호화

오세훈·2023년 8월 11일
0

java

목록 보기
16/16

암호화 두 가지 방식

encrypt

암호화

decrypt

복호화

SHA-256

암호화만 가능

AES-256

암호화, 복호화 둘 다 가능

암호화 패턴

MD5, SHA-256, HEX,

HEX

16진수를 함께 사용해서 암호화 하는 방식

SHA-256 클래스

package com.chunjae.util;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class SHA256 {
	public static String encrypt(String text) throws NoSuchAlgorithmException {
		MessageDigest md = MessageDigest.getInstance("SHA-256");
		md.update(text.getBytes());
		return bytesToHex(md.digest());
	}

	private static String bytesToHex(byte[] bytes) {
		StringBuilder sb = new StringBuilder();
		for(byte b : bytes) {
			sb.append(String.format("%02x", b));
		}
		return sb.toString();
	}
}

SHA-256 테스트 클래스

package com.chunjae.test;

import com.chunjae.util.SHA256;

import java.security.NoSuchAlgorithmException;
import java.util.Scanner;

public class SHA256Test {
    public static void main(String[] args) throws NoSuchAlgorithmException {
        String pwd = "1234";
        String crypwd = SHA256.encrypt(pwd);
        System.out.println("입력된 비밀번호 : " + pwd);
        System.out.println("암호화된 비밀번호 : "+crypwd);
        System.out.println("암호화된 비밀번호 글자수 : "+crypwd.length());

        Scanner sc = new Scanner(System.in);
        System.out.print("암호입력 : ");
        String pwd2 = sc.nextLine();
        String crypwd2 = SHA256.encrypt(pwd2);
        if(crypwd2.equals(crypwd)) {
            System.out.println("비밀번호 일치");
        } else {
            System.out.println("비밀번호 불일치");
        }
    }
}
profile
자바 풀 스택 주니어 개발자

1개의 댓글

comment-user-thumbnail
2023년 8월 11일

정리가 잘 된 글이네요. 도움이 됐습니다.

답글 달기