您的位置:首页 > 移动开发 > Android开发

token的生成和上传 (七牛 安卓版)

2016-11-11 15:39 155 查看
try {
// 1 构造上传策略
JSONObject _json = new JSONObject();
long _dataline = System.currentTimeMillis() / 1000 + 3600;
_json.put("deadline", _dataline);// 有效时间为一个小时
_json.put("scope", "kymobile");
String _encodedPutPolicy = UrlSafeBase64.encodeToString(_json
.toString().getBytes());
byte[] _sign = HmacSHA1Encrypt(_encodedPutPolicy, ConfigConstants.QINIU_SECRETKEY);
String _encodedSign = UrlSafeBase64.encodeToString(_sign);
String _uploadToken = ConfigConstants.QINIU_ACCESSKEY + ':' + _encodedSign + ':'
+ _encodedPutPolicy;
UploadManager uploadManager = new UploadManager();
uploadManager.put(file, null, _uploadToken,
new UpCompletionHandler() {
@Override
public void complete(String key, ResponseInfo info,
JSONObject response) {
KLog.d(info.toString());
}
}, null);

} catch (Exception e) {
e.printStackTrace();
}


/**
*
使用 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);
// 根据给定的字节数组构造一个密钥,第二参数指定一个密钥算法的名称
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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 七牛