반응형
01. Utility.java
- 웹프로그램 작성에 필요한 "부가적인 기능"을 제공하기 위한 클래스
package xyz.itwill.util;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
//웹프로그램 작성에 필요한 "부가적인 기능"을 제공하기 위한 클래스
public class Utility {
1) encrypt(source) : 문자열을 암호화 처리
//1.
//문자열을 전달받아 암호화처리하여 반환하는 메소드
//=> 암호화처리되는 기본이 되는 표준 알고리즘 메소드
//=> 테이블에 저장되기 전에 사용하기
public static String encrypt(String source) {
//암호화 처리된 문자열을 저장하기 위한 변수 선언
String password = "";
try {
//MessageDigest 객체 : 암호화 처리 기능을 제공하는 객체
//MessageDigest.getInstance(String algorithm) :
//=>매개변수에 전달된 암호화 알고리즘이 저장된 MessageDigest 객체를 생성하여 반환하는 메소드
//=> 매개변수에 잘못된 암호화 알고리즘을 전달할 경우 NoSuchAlgorithmException 발생
//단방향 암호화 알고리즘 : MD5(C언어해킹프로그램 존재 - 비권장), SHA-1, SHA-256(웹에서 권장), SHA-512 등
//=>복호화 시킬 수 없는 알고리즘(암호풀기불가능)
//양방향 암호화 알고리즘 : AES-123, RSA 등
//=>복호화 시킬 수 있는 알고리즘(암호풀기가능), 회사자체에서 만든 것도 가능
MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
//MessageDigest.update(byte[] input) : MessageDigest 객체에 암호화 처리하기 위한
//값(byte 배열)을 전달받아 저장하기 위한 메소드
//String getBytes() : String 객체에 저장된 문자열을 원시데이타(byte 배열)로
//변환하여 반환하는 메소드
messageDigest.update(source.getBytes());
//MessageDigest.digest() : MessageDigest 객체에 저장된 암호화 알고리즘으로 원시
//데이타를 암호화 처리하여 byte 배열로 반환하는 메소드
byte[] digest = messageDigest.digest();
//암호화 처리된 byte 배열을 문자열(String 객체)로 변환하여 저장
for(int i=0; i<digest.length; i++) {
//Integer.toHexString(int i) : 정수값을 전달받아 16진수의 문자열로 변환하여 반환하는 메소드
//=> &(논리곱연산자)0xff 를 추가해서 부호비트를 없애주어 16진수 형태의 문자값으로 바꿔줌
//=> 부호비트가 있으면 2의 보수화 처리되어 이상한 값이 나옴
password+= Integer.toHexString(digest[i]&0xff);
}
} catch (NoSuchAlgorithmException e) {
System.out.println("[에러] 잘못된 암호화 알고리즘을 사용 하였습니다 : "+e.getMessage());
}
return password;
}
2) stripTag(source) : 문자열을 전달받아 태그 관련 문자열을 모두 제거하여 반환
//2-1.
//문자열을 전달받아 태그 관련 문자열을 모두 제거하여 반환하는 메소드
//ex. <font size="7">하하하</font> -> <font size="7">와 </font>를 삭제하고, 하하하 만 남도록
public static String stripTag(String source) {
//Pattern.compile(String regex) : 정규표현식을 전달받아 정규표현식이 저장된 Pattern 객체를 반환하는 메소드
//Pattern 객체 : 정규표현식 관련 기능을 제공하기 위한 객체
Pattern htmlTag = Pattern.compile("\\\\<.*?\\\\>");
//Pattern.matcher(CharSequence input) : Pattern 객체에 저장된 정규표현식과 입력값이
//저장된 Matcher 객체를 반환하는 메소드
//CharSequence : String or StringBuffer의 부모
//Matcher 객체 : 정규표현식과 입력값을 비교 처리하기 위한 기능을 제공하는 객체
//Matcher.replaceAll(String replacement) : 정규표현식과 입력값을 비교하여 패턴이 동일한
//문자열을 모두 찾아 매개변수로 전달받은 문자열로 변경하는 메소드
source = htmlTag.matcher(source).replaceAll("");
return source;
}
3) escapeTag(source) : 문자열을 전달받아 태그 관련 문자를 회피문자로 변경하여 반환
//2-2.
//문자열을 전달받아 태그 관련 문자를 회피문자로 변경하여 반환하는 메소드
public static String escapeTag(String source) {
return source.replace("<", "<").replace(">", ">");
}
}
반응형
'jsp' 카테고리의 다른 글
[jsp] 20. 웹사이트 제작법6_ 마이페이지 제작 (feat. JSP) (0) | 2024.07.13 |
---|---|
[jsp] 19. 웹사이트 제작법5_회원가입 페이지 제작 (feat. JSP) (0) | 2024.07.13 |
[jsp] 17. 웹사이트 제작법3_DAO제작 (feat. JSP) (0) | 2024.07.12 |
[jsp] 16. 웹사이트 제작법2_테이블,DTO제작 (feat. JSP) (0) | 2024.07.12 |
[jsp] 15. 웹사이트 제작법1_뼈대제작 (feat. JSP) (0) | 2024.07.11 |