import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

	/**
	 * SHA256 암호화 문자열로 변환
	 * @param value
	 * @return
	 * @throws NoSuchAlgorithmException
	 */
	public static String encryptSHA256(String value) throws NoSuchAlgorithmException{
		String encryptData = "";
		
		MessageDigest sha = MessageDigest.getInstance("SHA-256");
		sha.update(value.getBytes());

		byte[] digest = sha.digest();
		for (int i=0; i<digest.length; i++) {
			encryptData += Integer.toHexString(digest[i] & 0xFF).toUpperCase();
		}
		
		return encryptData;
	}
	
	/**
	 * MD5 암호화 문자열로 변환
	 * @param value
	 * @return
	 * @throws NoSuchAlgorithmException
	 */
	public static String encryptMD5(String value) throws NoSuchAlgorithmException{
		String encryptData = "";
		
		MessageDigest sha = MessageDigest.getInstance("MD5");
		sha.update(value.getBytes());

		byte[] digest = sha.digest();
		for (int i=0; i<digest.length; i++) {
			encryptData += Integer.toHexString(digest[i] & 0xFF).toUpperCase();
		}
		
		return encryptData;
	}

JDK 1.4, 1.5 일 경우
sqljdbc.jar JDBC 3.0 지원

JDK 1.6 일 경우
sqljdbc4.jar JDBC 4.0 지원


ㅓㅇ[출처] sqljdbc.jar 와 sqljdbc4.jar 의 차이점|작성자 



[여러 파일 묶기]
tar cvf test.tar /userdir/test/test1.jsp
tar rvf test.tar /userdir/test/test2.jsp

[옵션]
-c : tar파일 생성할 때 사용 (기본사용)  -> 풀때는 -x 옵션 사용
-r : c 옵션 후 해당 파일에 추가 시킬때 사용
-t : tar파일의 내용을 확인할 때 사용
-f : tar파일을 사용할 때 사용 (기본사용)
-p : tar파일을 생성or풀때 원본 파일속성(퍼미션) 유지
-v : 묶거나 풀 때 과정 보기 (거의기본사용)
-z : gzip(gunzip) 사용 옵션
-j : bzip(bunzip2) 사용 옵션


declare @idx int

set @idx = 1

while(1=1)
begin
	if @idx > 1000000 break;
	
	insert into test(a,b,d)values(@idx, 'a', 'bbbb');
	
	set @idx = @idx + 1
end

		
		/**
		 * 주민번호 유효성체크 로직
		 * @param value 주민번호
		 * @return Boolean
		 */
		public static function checkJumin(value:String) : Boolean {
			var returnValue : Boolean = false;
			var standardNum : String = "234567892345";
			
			value = value.replace(/\-/g, "");
			
			if( value.length == 13 && !isNaN( Number(value) ) ){
				var sum : Number = 0;
				for( var i:int=0; i<12; i++ ){
					sum += parseInt(value.charAt(i)) * parseInt(standardNum.charAt(i));
				}
				
				returnValue = ((11-(sum%11.0))%10.0)==parseInt(value.charAt(12))?true:false;
			}else{
				returnValue = false;
			}
			return returnValue;
		}

	Connection conn = null;
	PreparedStatement  pstmt  = null;
	ResultSet  rs   = null;
	
	try{
		
		conn = .............
		
		String sql = "";
		
		int 	t_int = 1;
		String 	t_clob = "clob data 한글 입력";
		
		sql =  " insert into  test_clob (t_int, t_clob)values(?, ?) ";
		pstmt = conn.prepareStatement(sql);
		pstmt.setInt(1, t_int);
		pstmt.setAsciiStream(2, new ByteArrayInputStream(t_clob.getBytes()), t_clob.getBytes().length);
		int result = pstmt.executeUpdate();
		out.print("
result: " + result); sql = " select * from test_clob "; pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); if( rs.next() ){ do{ InputStream is2 = rs.getAsciiStream(2); StringBuffer sb = new StringBuffer(); if( is2 != null ){ byte[] b = new byte[4096]; for (int n; (n = is2.read(b)) != -1;) { sb.append(new String(b, 0, n)); } } out.print("
int: " + rs.getInt(1) + " | clob: " + sb); }while( rs.next() ); } }catch(Exception e){ out.print("
e: " + e); }
http://www.npaint.com/
데모 http://app.npaint.com/nPaintLite/default.php

// 약 4622 줄 try cache로 묶어준다.
try{
	style[ name ] = value;
} catch (e){}

[JavaScript]
/**
 * 주어진 값 다음의 날짜 구하기(과거는 - 마이너스)
 * @param nextDateInt	날짜에 더하거나 빼야할 값
 * @param nowDate		현재 날짜 및 기준날짜( new Date(), 없을 경우 new Date(), yyyymmdd 8자리)
 * @return Date
 */
function getNextDate(nextDateInt, standardDate){

	var oneDate = 1000 * 3600 * 24;	// 하루

	var nowDate;
	if( standardDate == undefined )					nowDate = new Date();
	else if( standardDate.getTime != undefined )	nowDate = standardDate;
	else if( standardDate.length == 8 )				nowDate = new Date(standardDate.substring(0, 4), parseInt(standardDate.substring(4, 6))-1, standardDate.substring(6, 8));
	
	return new Date(nowDate.getTime() + (oneDate * nextDateInt));
}



[JAVA]
/**
	 * 주어진 값 다음의 날짜 구하기(과거는 - 마이너스)
	 * @param nextDateInt	날짜에 더하거나 빼야할 값
	 * @param nowDate		현재 날짜 및 기준날짜( new Date(), 없을 경우 new Date(), yyyymmdd 8자리)
	 * @return Date
	 */
	public static Date getNextDate(int nextDateInt){
		return getNextDate(nextDateInt, new Date());
	}
	public static Date getNextDate(int nextDateInt, String nowDateStr){
		GregorianCalendar gc = new GregorianCalendar ( Integer.parseInt(nowDateStr.substring(0, 4)), (Integer.parseInt(nowDateStr.substring(4, 6))-1), Integer.parseInt(nowDateStr.substring(6, 8)) );
		return getNextDate(nextDateInt, gc.getTime());
	}
	public static Date getNextDate(int nextDateInt, Date nowDate){
		long oneDate = 1000 * 3600 * 24;	// 하루
		return new Date(nowDate.getTime() + (oneDate * nextDateInt));
	}
[ActionScript]
/**
	 * 주어진 값 다음의 날짜 구하기(과거는 - 마이너스)
	 * @param nextDateInt	날짜에 더하거나 빼야할 값
	 * @param nowDate		현재 날짜 및 기준날짜
	 * @return Date
	 */
	public static function getNextDate(nextDateInt:int, standardDate:Date) : Date {
		var oneDate:Number = 1000 * 3600 * 24;	// 하루
		return new Date(standardDate.getTime() + (oneDate * nextDateInt));
	}

테이블의 tbody tr row가 0개일 경우 에러발생, 또한 1개일 경우에도 정렬할 필요 없다.

// row data 2개 이상일때만 동작하게 한다. 2010-09-1 by ddakker
if( totalRows < 2 ) return;

+ Recent posts