SHA256 암호화 하기
import java.security.MessageDigest;
public class RunTestController {
public static void main(String [] args) throws Exception {
try {
// 사용자로 부터 받은 패스워드
String password = "12345";
System.err.println("passWord : " + password);
System.out.println("단방향 passWord : " + encrypt(password));
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 단반향 암호화 하기
* @param password
* @return
* @throws Exception
*/
public static String encrypt(String password) throws Exception {
// 단반향 알고리즘
final String SHA = "SHA-256";
try {
MessageDigest messagedigest = null;
messagedigest = MessageDigest.getInstance(SHA);
messagedigest.update(password.getBytes());
byte [] bytes = messagedigest.digest();
StringBuffer buffer = new StringBuffer();
for(int i = 0; i < bytes.length; i++) {
buffer.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
}
return buffer.toString();
} catch (Exception e) {
throw e;
}
}
}
회원가입 시 암호화 값을 DB에 저장하고
로그인 시 사용자로 부터 받은 비밀번호 값을 단방향 암호화를 하여
DB에 저장되어 있는 암호화 값과 비교하여 로그인을 하면 된다
양방향 암호화는 복호화가 가능
단방향 암호화는 복호화가 불가능
(아에 안되는것은 아니라는데 힘들다고 한다)
Util 용 Class 구분
package com.example.practice.util;
import java.security.MessageDigest;
public class Encrypt {
private static final String SHA = "SHA-256";
public Encrypt() {
super();
}
/**
* 단방향 암호화
* @param passWord
* @return
* @throws Exception
*/
public static String encrypt(String passWord) throws Exception {
try {
MessageDigest messagedigest = null;
messagedigest = MessageDigest.getInstance(SHA);
messagedigest.update(passWord.getBytes());
byte[] bytes = messagedigest.digest();
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < bytes.length; i++) {
buffer.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
}
return buffer.toString();
} catch (Exception e) {
throw e;
}
}
}
'개발 > Java' 카테고리의 다른 글
[JAVA] REST API 구현하기(API KEY) - Postman 이용 (0) | 2023.09.07 |
---|---|
[Java] JDBC Connection - 자바와 DB 연결하기 (0) | 2023.06.08 |
[Java] cURL - ProcessBuilder 사용하기 (0) | 2023.05.24 |
[Java] Thread(스레드) - 생성, 실행, 종료 하기 , 에러 해결 (0) | 2023.05.13 |
[Java] ExcelUpload - 파일 읽고 DB에 insert 하기 (0) | 2023.05.11 |
댓글