秘鑰長度可以隨便輸嗎
?public static final String PASSWORD="imooc security hmac";
public static void bcHmacMD5(){
?? ??? ?HMac hmac=new HMac(new MD5Digest());
?? ??? ?hmac.init(new KeyParameter(Hex.decode("aaaaaaaaa")));
?? ??? ?hmac.update(PASSWORD.getBytes(), 0, PASSWORD.getBytes().length);
?? ??? ?byte [] bcHmacMD5bytes=new byte [hmac.getMacSize()];
?? ??? ?hmac.doFinal(bcHmacMD5bytes, 0);
?? ??? ?System.out.println("bc HmacMD5="+org.apache.commons.codec.binary.Hex.encodeHexString(bcHmacMD5bytes));
??? }
java.security.NoSuchAlgorithmException:?aaaaaaaaaa?KeyGenerator?not?available
為什么秘鑰是十個a,我少輸就會報異常
2016-12-15
不一定是10個,key的元素個數是偶數就行。
以下是CC的Hex.decodeHex()方法的文檔注釋:
BC報這個異常的原因應該類似。