秘鑰長(zhǎng)度可以隨便輸嗎
?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
為什么秘鑰是十個(gè)a,我少輸就會(huì)報(bào)異常
2016-12-15
不一定是10個(gè),key的元素個(gè)數(shù)是偶數(shù)就行。
以下是CC的Hex.decodeHex()方法的文檔注釋?zhuān)?/p>
BC報(bào)這個(gè)異常的原因應(yīng)該類(lèi)似。