oss上传java如何生成signature?
Reoss上传java如何生成signature?
/** * base64转码 * * @param st * @return */ public static String base64Encode(String st) { return new String(Base64.encodeBase64(st.getBytes())); }
/** * 生成签名数据 * * @param data 待加密的数据 * @param key 加密使用的key * @throws InvalidKeyException * @throws NoSuchAlgorithmException */ public static String getSignature(String data,String key) throws Exception{ byte[] keyBytes=key.getBytes(); SecretKeySpec signingKey = new SecretKeySpec(keyBytes, HMAC_SHA1); Mac mac = Mac.getInstance(HMAC_SHA1); mac.init(signingKey); byte[] rawHmac = mac.doFinal(data.getBytes()); StringBuilder sb=new StringBuilder(); for(byte b:rawHmac){ sb.append(byteToHexString(b)); } return sb.toString(); } private static String byteToHexString(byte ib){ char[] Digit={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'}; char[] ob=new char[2]; ob[0]=Digit[(ib>>>4)& 0X0f]; ob[1]=Digit[ib & 0X0F]; String s=new String(ob); return s; }
java生成的签明 与php生成的签明不一致。这是啥子情况泥?
-------------------------
回3楼xgp的帖子
文档写的好蛋疼,真心看的不明白。。。。。
赞0
踩0