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

  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);
    }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值