private static final String HMAC_SHA1_ALGORITHM = "HmacSHA1";
String data = "fadafadsfasdfad";
String key = "asdfasd"
String sol = null;
try {
byte[] rel = Base64_HMACSHA1(data, key);
sol = new String(rel);
} catch (SignatureException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
et4.setText(sol);
public static byte[] Base64_HMACSHA1(String data, String key)
throws java.security.SignatureException
{
byte[] rawHmac = null;
try {
// get an hmac_sha1 key from the raw key bytes
SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), HMAC_SHA1_ALGORITHM);
// get an hmac_sha1 Mac instance and initialize with the signing key
Mac mac = Mac.getInstance(HMAC_SHA1_ALGORITHM);
mac.init(signingKey);
// compute the hmac on input data bytes
rawHmac = mac.doFinal(data.getBytes());
} catch (Exception e) {
throw new SignatureException("Failed to generate HMAC : " + e.getMessage());
}
//return rawHmac;
byte [] buf = null;
try {
Class Base64 = Class.forName("org.apache.commons.codec.binary.Base64");
Class[] parameterTypes = new Class[] { byte[].class };
Method encodeBase64 = Base64.getMethod("encodeBase64", parameterTypes);
buf = (byte[])encodeBase64.invoke(Base64, rawHmac);
} catch (Exception e) {
e.printStackTrace();
}
return buf;
}
[출처] HMAC-SHA1 + Base64|작성자 아름다운세상
'프로그래밍(~2017) > 자바' 카테고리의 다른 글
[Java] 리플렉션에 대한 재고 (0) | 2011.08.18 |
---|---|
자바 제네릭 관련 정리 (0) | 2011.08.18 |
[자바] Base64 인코딩,디코딩 (0) | 2011.08.09 |
자바에서 문자열 인코딩 방식 바꾸기 (0) | 2011.04.27 |
자바와 C언어간 통신 프로그램 설계시 데이터 변환 (int to byte, byte to int) (0) | 2011.04.27 |