2016-07-18 2 views
0

hmac-sha256이 2 개의 문자열을 인코딩하는 기능이 필요합니다. 이 코드 블록을 찾았지만 Eclipse 컴파일러는 "16 진수를 해결할 수 없다"고 계속 말합니다.JAVA hmac-sha256 라이브러리 오류

public static String encode(String key, String data) throws Exception { 
     Mac sha256_HMAC = Mac.getInstance("HmacSHA256"); 
     SecretKeySpec secret_key = new SecretKeySpec(key.getBytes("UTF-8"), "HmacSHA256"); 
     sha256_HMAC.init(secret_key); 

     return Hex.encodeHexString(sha256_HMAC.doFinal(data.getBytes("UTF-8"))); 
    } 

나는 또한 이것을 시도 : "Base64를 확인할 수 없습니다"오류가 발생했습니다.

public static String encode(String key, String data) throws Exception { 
     Mac sha256_HMAC = Mac.getInstance("HmacSHA256"); 
     SecretKeySpec secret_key = new SecretKeySpec(key.getBytes("UTF-8"), "HmacSHA256"); 
     sha256_HMAC.init(secret_key); 

     return Base64.encodeBase64String(sha256_HMAC.doFinal(data.getBytes("UTF-8"))); 
    } 

내 수입은 다음과 같습니다

import java.security.MessageDigest; 
import java.util.Random; 
import java.lang.Object; 
import javax.crypto.Mac; 
import javax.crypto.spec.SecretKeySpec; 
import javax.xml.bind.DatatypeConverter; 

와 나는 JRE 시스템 라이브러리 (JavaSE-1.7)를 사용하고 있습니다. 제 질문은 어떻게 이러한 오류 코드를 수정합니까?

+0

Java 1.7이 (가) 지원이 중단되었습니다. 안전한 코드를 작성하려면 1.8을 사용하십시오. –

답변

0

Apache Commons Codec을 클래스 경로에 입력하고 올바른 클래스를 포함하도록 import 문을 수정하십시오.

+0

PS 인터넷 검색 엔진에'encodeHexString'을 넣을 때 첫 번째 히트작입니다. –