运行hmac时出错NoSuchAlgorithmException

时间:2019-04-03 06:51:40

标签: java netbeans-8 hmac

我正在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));

    }

}

谢谢你

1 个答案:

答案 0 :(得分:0)

您需要抓住NoSuchAlgorithmException。大多数IDE都直接指出了这一点。只需添加trycatch例外NoSuchAlgorithmException。这样会很好。