package kcc.com.cmm.util; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import javax.servlet.http.HttpServletRequest; public class WebUtil { /** * MD5 * @return */ public String convertToHex(byte[] data ){ StringBuffer buf = new StringBuffer(); for( int i=0; i< data.length; i++){ int halfbyte = (data[i] >>> 4 ) & 0x0F; int two_halfs =0; do{ if((0 <= halfbyte) && (halfbyte <= 9)) buf.append((char)('0' + halfbyte)); else buf.append((char)('a' + ( halfbyte - 10))); halfbyte =data[i] & 0x0F; }while(two_halfs++ < 1); } return buf.toString(); } //private static String MD5(String text ) throws NoSuchAlgorithmException, UnsupportedEncodingExecption { public String MD5(String text ) throws NoSuchAlgorithmException, UnsupportedEncodingException { MessageDigest md; //md = MessageDigest.getInstance("MD5"); try { // 2021.11.24 보안점검 후속조치 암호화 알고리즘 변경(MD5 -> SHA-256) //md = MessageDigest.getInstance("MD5"); md = MessageDigest.getInstance("SHA-256"); } catch (NoSuchAlgorithmException nsae) { //throw new InternalError("MD5 not supported"); throw new InternalError("SHA-256 not supported"); } byte[] md5hash=new byte[32]; md.update(text.getBytes("iso-8859-1"),0,text.length()); md5hash=md.digest(); return convertToHex(md5hash); } public boolean isMobile(HttpServletRequest request){ String userAgent = request.getHeader("user-agent"); boolean mobile1 = userAgent.matches(".*(iPhone|iPod|Android|Windows CE|BlackBerry|Symbian|Windows Phone|webOS|Opera Mini|Opera Mobi|POLARIS|IEMobile|lgtelecom|nokia|SonyEricsson).*"); boolean mobile2 = userAgent.matches(".*(LG|SAMSUNG|Samsung).*"); if(mobile1 || mobile2) { return true; } return false; } }