我在Java中尝试hmac,作为一个新手,我无法解决错误
在NetBeans中运行后出错:
重点:MTzkWlyhZxfLMv84wgr + I + pFNI0 =
线程“main”中的异常java.lang.RuntimeException:无法编译的源代码
-unreported exception 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));
}
}
感谢你
你需要抓住NoSuchAlgorithmException
。大多数IDE直接指出它。只需添加try
和catch
例外NoSuchAlgorithmException
。这样可以正常工作。