암호화를 위한 샘플 Java 다이제스트 알고리즘

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 1분
  • 이 Java 알고리즘은 HTTP 헤더에서 다이제스트 토큰을 만드는 방법을 보여줍니다.

    이 샘플에서는 다음을 가정합니다.
    • 웹 서버는 Java를 지원합니다.
    • 해시 계산 메서드는 SHA1입니다.
    • 비밀 키 값은 abc123입니다.
    • 암호화되지 않은 HTTP 헤더 이름이 user_name
    다른 해시 계산 메커니즘(예: MD5)을 사용하도록 Java 코드를 변경하거나 비밀 키 값 또는 HTTP 헤더 이름을 변경합니다.
    public class DigestTest
    {
        private static final String MAC_ALG = "HmacSHA256";
           fKey  = {32 or more characters};
        public byte[] getDigest(String acct) {
            try {
                byte[] bkey = fKey.getBytes();
                byte[] data = acct.getBytes();
                Mac mac = null;
                try {
                    mac = Mac.getInstance(MAC_ALG);
                    mac.init(new SecretKeySpec(bkey, MAC_ALG));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                byte[] sig = mac.doFinal(data);
                String signature = new String(sig);
                System.out.println("value:" + acct);
                System.out.println("digested value:  " + signature);
                return sig;
            } catch (IllegalStateException e) {
                e.printStackTrace();
            }
            return null;
        }
        public static void main(String[] args) {
            BASE64Encoder encoder = new BASE64Encoder();
            DigestTest test = new DigestTest();
            String userName = "user_name";
            System.out.println("base 64 digest username: " + encoder.encode(test.getDigest(userName)));
        }
    }