최신 업데이트:2025-08-18 15:33:03
아래 예제는 Java 코드를 이용하여 HMAC-SHA1 암호화 알고리즘을 구현하는 방법을 보여줍니다.
Java 버전 샘플 코드
/*** HMAC-SHA1 암호화 방식<br>* @param content - 암호화할 컨텐츠* @param secretKey - 키* @return HMAC_SHA1로 암호화된 문자열*/publicstatic String HMACSHA1(String content, String secretKey) {try {byte[] secretKeyBytes = secretKey.getBytes();SecretKey secretKeyObj = new SecretKeySpec(secretKeyBytes, "HmacSHA1");Mac mac = Mac.getInstance("HmacSHA1");mac.init(secretKeyObj);byte[] text = content.getBytes("UTF-8");byte[] encryptContentBytes = mac.doFinal(text);// SHA1 알고리즘을 통해 생성된 서명은 160비트 이진 코드이며, 표현을 위해 16진수 문자열로 변환됩니다.String encryptContent = bytesToHexString(encryptContentBytes);return encryptContent;} catch (Exception e) {e.printStackTrace();}return content;}/*** 바이트 배열을 16진수 문자열로 표현하는 방법<br>* 예시: 0xff->'ff'* @param bytes 바이트 배열* @return 16진수 문자열 형태*/privatestatic String bytesToHexString(byte[] bytes) {StringBuilder hexString = new StringBuilder("");for(byte ib : bytes) {char[] Digit = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};char[] ob = newchar[2];ob[0] = Digit[(ib >>> 4) & 0X0f];ob[1] = Digit[ib & 0X0F];hexString.append(ob);}return hexString.toString();}