第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

android端生成token報錯bad token

android端生成token報錯bad token

慕碼人8056858 2019-03-21 18:19:29
public class UploadToken  {    public static  String getUploadToken(Object object){        Gson gson=new Gson();        String jsonObject=gson.toJson(object);        String encodedPutPolicy = UrlSafeBase64.encodeToString(jsonObject);        String encodedSign="";        try {            encodedSign =hmacSha1(encodedPutPolicy);        }catch (Exception e){        }        String uploadToken = QiNiuConstant.ACCESSKEY + ":" + encodedSign + ":" + encodedPutPolicy;        return uploadToken;    }    public  static   String hmacSha1(final String base)            throws NoSuchAlgorithmException, InvalidKeyException {        String type = "HmacSHA1";        SecretKeySpec secret = new SecretKeySpec(QiNiuConstant.SECRETKEY.getBytes(), type);        Mac mac = Mac.getInstance(type);        mac.init(secret);        byte[] digest = mac.doFinal(base.getBytes());        return Base64.encodeToString(digest, Base64.URL_SAFE);    }其中Object的為:public class ImagePutPolicy implements Serializable {    private String scope;    private long deadline;    private ReturnBody returnBody;    public ImagePutPolicy(String fileName) {        scope = QiNiuConstant.SAVESPACE+":"+fileName;    }    public long getDeadline() {        return deadline;    }    public void setDeadline(long deadline) {        this.deadline = System.currentTimeMillis()/1000+deadline;    }    public ReturnBody getReturnBody() {        return returnBody;    }    public void setReturnBody(ReturnBody returnBody) {        this.returnBody = returnBody;    }}上傳代碼為  private void simpleUpload() {        ImagePutPolicy putPolicy=new ImagePutPolicy(key);        putPolicy.setDeadline(3600);        token=UploadToken.getUploadToken(putPolicy);        byte[] data=new byte[]{ 0, 1, 2, 3};           
查看完整描述

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);

    }

希望對你有幫助,以上


查看完整回答
反對 回復 2019-04-22
?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

1、第一次聽說token是移動端生成的
2、不禁想問:你們的服務端在忙什么

查看完整回答
反對 回復 2019-04-22
  • 3 回答
  • 0 關注
  • 1053 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號