암호화
복호화
암호화만 가능
암호화, 복호화 둘 다 가능
MD5, SHA-256, HEX,
16진수를 함께 사용해서 암호화 하는 방식
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();
}
}
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("비밀번호 불일치");
}
}
}
정리가 잘 된 글이네요. 도움이 됐습니다.