3 回答

TA貢獻2003條經驗 獲得超2個贊
token不是后臺生成過來的么
-----------------------------------7-29編輯-------------------------------------------------
這應該是七牛上傳,所以需要安卓端生成token。如果是七牛上傳,代碼如下:
public String getToken() {
try {
JSONObject _json = new JSONObject();
long _dataline = System.currentTimeMillis() / 1000 + 3600;
_json.put("deadline", _dataline);// 有效時間為一個小時
_json.put("scope", "images");
String _encodedPutPolicy = UrlSafeBase64.encodeToString(_json
.toString().getBytes());
byte[] _sign = HmacSHA1Encrypt(_encodedPutPolicy, SecretKey);
String _encodedSign = UrlSafeBase64.encodeToString(_sign);
String _uploadToken = AccessKey + ':' + _encodedSign + ':'
+ _encodedPutPolicy;
return _uploadToken;
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
/**
*
* 使用 HMAC-SHA1 簽名方法對對encryptText進行簽名
*
* @param encryptText
* 被簽名的字符串
* @param encryptKey
* 密鑰
* @return
* @throws Exception
*/
public static byte[] HmacSHA1Encrypt(String encryptText, String encryptKey)
throws Exception {
byte[] data = encryptKey.getBytes(ENCODING);
// 根據給定的字節(jié)數(shù)組構造一個密鑰,第二參數(shù)指定一個密鑰算法的名稱
SecretKey secretKey = new SecretKeySpec(data, MAC_NAME);
// 生成一個指定 Mac 算法 的 Mac 對象
Mac mac = Mac.getInstance(MAC_NAME);
// 用給定密鑰初始化 Mac 對象
mac.init(secretKey);
byte[] text = encryptText.getBytes(ENCODING);
// 完成 Mac 操作
return mac.doFinal(text);
}
希望對你有幫助,以上
添加回答
舉報