JAVA hmac-sha256 库错误

JAVA hmac-sha256 library error

我需要一个 hmac-sha256 编码 2 个字符串的函数。我找到了这段代码,但我的 eclipse 编译器一直说 "Hex cannot be resolved".

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 cannot be resolved"。

  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)。 我的问题是如何修复这些错误代码?

Apache Commons Codec 放入您的 class 路径并修复您的 import 语句以包含其中的正确 classes。