【问题标题】:JAVA hmac-sha256 library errorJAVA hmac-sha256 库错误
【发布时间】:2016-07-18 22:50:45
【问题描述】:

我需要一个 hmac-sha256 编码 2 个字符串的函数。我找到了这段代码,但我的 Eclipse 编译器一直说“无法解析十六进制”。

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

【问题讨论】:

  • Java 1.7 不再支持。使用 1.8 编写安全代码。

标签: java eclipse hex base64 sha256


【解决方案1】:

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

【讨论】:

  • PS 这是我将encodeHexString 放入我的互联网搜索引擎时的第一次点击。
猜你喜欢
  • 1970-01-01
  • 2017-06-27
  • 1970-01-01
  • 2020-07-09
  • 1970-01-01
  • 2017-01-14
  • 2020-10-18
  • 2014-04-30
  • 2016-01-29
相关资源
最近更新 更多