我需要一个函数,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 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)。我的问题是如何修复这些错误代码?
https://stackoverflow.com/questions/38447129
复制相似问题