MAC검증도우미
KG톡인증 서비스는 인증을 위해 주고받는 데이터의 위변조 검증을 위해 데이터인증값(mac)을 생성하고 검증합니다.
데이터인증값은 HmacSHA256(DATA, KEY)의 결과를 HexString으로 변환 후 upperCase하여 생성합니다.
JAVA
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import javax.xml.bind.DatatypeConverter;
public class HMACUtil {
public static String HMAC_SHA256(String data, String key) throws Exception{
String alg ="HmacSHA256";
Mac hmac = Mac.getInstance(alg);
hmac.init(new SecretKeySpec(key.getBytes(), alg));
hmac.update(data.getBytes());
byte[] hash = hmac.doFinal();
return DatatypeConverter.printHexBinary(hash).toUpperCase();
}
}
JavaScript(Node.js)
crypt-js라이브러리를 사용합니다.
var crypto = require("cryptojs"); function generateMac(data, key){ var hmac = crypto.createHmac("sha256", key); var hash = hmac.update(data).digest("hex"); return hash.toUpperCase(); } var mac = generateMac(data, key);