자료실

제목[JSP] 서명(signature) 생성 샘플코드
작성자관리자 @ 2012.06.08 15:41:45

발급된 키가 00112233445566778899aabbccddeeff 이고 현재 URL 정보를 담은 QR코드를 자동 생성하는 jsp 예제 입니다.

 

1) jsp 소스에 아래 img 태그 추가

 

<img src="http://mqr.kr/qr/?t=
<%=request.getRequestURL()%>&r=0&j=1&w=150&m=20&lb=2a4a06&lt=ed1e2e&rt=155ca2&sign=<%=sign("00112233445566778899aabbccddeeff", "t="+request.getRequestURL()+"&r=0&j=1&w=150&m=20&lb=2a4a06&lt=ed1e2e&rt=155ca2")%> "/>
 
2)Java 소스
 
import java.io.*;
 
import java.security.NoSuchAlgorithmException;
import java.nio.charset.Charset;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.security.InvalidKeyException;
 
public static String sign(String keyHex, String message) throws NoSuchAlgorithmException, InvalidKeyException {
  final byte[] keyBytes = new byte[16];
  for (int i = 0; i < 16; i++)
    keyBytes[i] = (byte)Integer.parseInt(keyHex.substring(i * 2, i* 2 + 2), 16);
  final Charset ascii = Charset.forName("US-ASCII");
  final Mac mac = Mac.getInstance("HmacSHA256");
  final SecretKeySpec key = new SecretKeySpec(keyBytes, "HmacSHA256");
  mac.init(key);
  final byte[] sign = mac.doFinal(ascii.encode(message).array());
  String result = "";
  for (final byte b : sign) {
    String hex = Integer.toHexString(0xFF & b);
    if (hex.length() == 1)
      result += "0";
      result += hex;
  }
  return result;
}
 
 
 
 
 
공유
QR link to local page