android hmac加密,android hmacSha256 加密

//json字符串 key value形式

String str = JacksonUtil.getInstance().writeValueAsString(commomParamsMap);

String sign = ApiSecurityExample.hmacSha256("key", str);

public class ApiSecurityExample {

public static void main(String[] args) {

System.out.println(hmacSha1("mykey", "helloworld"));

System.out.println(hmacSha256("mykey", "helloworld"));

}

public static String hmacSha1(String KEY, String VALUE) {

return hmacSha(KEY, VALUE, "HmacSHA1");

}

public static String hmacSha256(String KEY, String VALUE) {

return hmacSha(KEY, VALUE, "HmacSHA256");

}

private static String hmacSha(String KEY, String VALUE, String SHA_TYPE) {

try {

SecretKeySpec signingKey = new SecretKeySpec(KEY.getBytes("UTF-8"), SHA_TYPE);

Mac mac = Mac.getInstance(SHA_TYPE);

mac.init(signingKey);

byte[] rawHmac = mac.doFinal(VALUE.getBytes("UTF-8"));

byte[] hexArray = {

(byte)'0', (byte)'1', (byte)'2', (byte)'3',

(byte)'4', (byte)'5', (byte)'6', (byte)'7',

(byte)'8', (byte)'9', (byte)'a', (byte)'b',

(byte)'c', (byte)'d', (byte)'e', (byte)'f'

};

byte[] hexChars = new byte[rawHmac.length * 2];

for ( int j = 0; j < rawHmac.length; j++ ) {

int v = rawHmac[j] & 0xFF;

hexChars[j * 2] = hexArray[v >>> 4];

hexChars[j * 2 + 1] = hexArray[v & 0x0F];

}

return new String(hexChars);

}

catch (Exception ex) {

throw new RuntimeException(ex);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值