我正在Java中尝试使用hmac,但作为新手,我无法解决该错误
在NetBeans中运行后出错:
键:MTzkWlyhZxfLMv84wgr + i + pFNI0 =
线程“ main”中的异常java.lang.RuntimeException:无法编译的源代码
-未报告的异常java.security.NoSuchAlgorithmException;必须被抓到
或声明要抛出
在hmac.HMAC.main(HMAC.java:27)
Java结果:1
我的代码
package HMAC;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.security.SecureRandom;
import sun.misc.*;
/**
*
* @author Best
*/
public class HMAC {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
SecureRandom random = new SecureRandom();
byte[] keyBytes = new byte[20];
random.nextBytes(keyBytes);
SecretKeySpec key = new SecretKeySpec(keyBytes, "HMACSHA1");
System.out.println("Key:"+new BASE64Encoder().encode(key.getEncoded()));
Mac mac = Mac.getInstance("HmacSHA1");
mac.init(key);
mac.update("hello".getBytes("UTF8"));
byte[] result = mac.doFinal();
System.out.println("MAC: "+new BASE64Encoder().encode(result));
}
}
谢谢你
答案 0 :(得分:0)
您需要抓住NoSuchAlgorithmException
。大多数IDE都直接指出了这一点。只需添加try
和catch
例外NoSuchAlgorithmException
。这样会很好。