How to generate HMAC-SHA1 Signature in android?

后端 未结 2 591
甜味超标
甜味超标 2020-12-14 11:17

This is my base String:

        String args =\"oauth_consumer_key=\"+enc(consumerkey) +
                   \"&oauth_nonce=\"+enc(generateNonce()) +
              


        
2条回答
  •  无人及你
    2020-12-14 11:51

    Messy, but I'm using this:

    static String hash_hmac(String type, String value, String key)
        {
        try {
            javax.crypto.Mac mac = javax.crypto.Mac.getInstance(type);
            javax.crypto.spec.SecretKeySpec secret = new javax.crypto.spec.SecretKeySpec(key.getBytes(), type);
            mac.init(secret);
            byte[] digest = mac.doFinal(value.getBytes());
            StringBuilder sb = new StringBuilder(digest.length*2);
            String s;
            for (byte b : digest){
            s = Integer.toHexString(intval(b));
            if(s.length() == 1) sb.append('0');
            sb.append(s);
            }
            return sb.toString();
        } catch (Exception e) {
            android.util.Log.v("TAG","Exception ["+e.getMessage()+"]", e);
        }
            return "";
        }
    

    You then invoke it like this:

    hash_hmac("HmacSHA1", value, key);
    

提交回复
热议问题