base_project/src/main/java/kcc/com/cmm/util/WebUtil.java
2025-09-08 16:31:40 +09:00

66 lines
1.9 KiB
Java

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;
}
}