1.废话不多说,直接贴代码
/**
*导包 begin
*/
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
/**
*导包 end
*/
String appSecret="APP密钥";
String plainText="待签名字符串";
final SecretKeySpec secretKeySpec = new SecretKeySpec(appSecret.getBytes("UTF-8"), "HmacSHA1");
final Mac hmac = Mac.getInstance("HmacSHA1");
hmac.init(secretKeySpec);
byte[] encode = hmac.doFinal(plainText.getBytes("UTF-8"));
String hash = byteArrayToHex(encode);
String baseStr = new String(Base64.encodeBase64(hash.getBytes()));
// baseStr就是签名后结果啦
private static String byteArrayToHex(byte[] a) {
StringBuilder sb = new StringBuilder(a.length * 2);
for (byte b : a)
sb.append(String.format("%02x", b & 0xff));
return sb.toString();
}
本文介绍了一种使用HmacSHA1算法进行签名的具体实现方式。通过Java代码演示了如何利用APP密钥对指定字符串进行签名,并将签名结果转换为Base64编码格式。
672

被折叠的 条评论
为什么被折叠?



