HMAC-SHA1签名工具类
2017-11-16 17:34
253 查看
package cn.manmanda.core.util; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; /** * * ━━━━━━神兽出没━━━━━━ * ┏┓ ┏┓ * ┏┛┻━━━┛┻┓ * ┃ ┃ * ┃ ━ ┃ * ┃ ┳┛ ┗┳ ┃ * ┃ ┃ * ┃ ┻ ┃ * ┃ ┃ * ┗━┓ ┏━┛Code is far away from bug with the animal protecting * ┃ ┃ 神兽保佑,代码无bug * ┃ ┃ * ┃ ┗━━━┓ * ┃ ┣┓ * ┃ ┏┛ * ┗┓┓┏━┳┓┏┛ * ┃┫┫ ┃┫┫ * ┗┻┛ ┗┻┛ * * ━━━━━━感觉萌萌哒━━━━━━ */ public class HMAC_SHA1Util { private static final String HMAC_SHA1_ALGORITHM = "HmacSHA1"; /** * 使用 HMAC-SHA1 签名方法对data进行签名 * * @param data * 被签名的字符串 * @param key * 密钥 * @return 加密后的字符串 */ public static String genHMAC(String data, String key) { byte[] result = null; try { byte[] bytekey = key.getBytes("UTF-8"); //根据给定的字节数组构造一个密钥,第二参数指定一个密钥算法的名称 SecretKeySpec signinKey = new SecretKeySpec(bytekey, HMAC_SHA1_ALGORITHM); //生成一个指定 Mac 算法 的 Mac 对象 Mac mac = Mac.getInstance(HMAC_SHA1_ALGORITHM); //用给定密钥初始化 Mac 对象 mac.init(signinKey); //完成 Mac 操作 byte[] rawHmac = mac.doFinal(data.getBytes("UTF-8")); result = Base64.encodeBase64(rawHmac); } catch (NoSuchAlgorithmException e) { System.err.println(e.getMessage()); } catch (InvalidKeyException e) { System.err.println(e.getMessage()); }catch (UnsupportedEncodingException e) { e.printStackTrace(); } if (null != result) { return new String(result); } else { return null; } } }
相关文章推荐
- 新浪微博(十二)HMAC_SHA1签名
- 使用HMAC-SHA1签名方法
- 使用HMAC-SHA1签名方法详解
- Python对PHP服务器hmac_sha1签名认证方法的匹配实现
- 在Android中生成HMAC-SHA1 签名
- 使用HMAC-SHA1签名方法详解
- HMAC-SHA1加密,OAUTH中签名时使用的一种方法。
- hmac_sha1 签名
- java 用hmac-sha1进行签名
- Java对PHP服务器hmac_sha1签名认证方法的匹配实现
- Java对PHP服务器hmac_sha1签名认证方法的匹配实现
- Java对PHP服务器hmac_sha1签名认证方法的匹配实现
- Java对PHP服务器hmac_sha1签名认证方法的匹配实现 的另一种方式
- HMAC-SHA1 20位签名 解决方法。
- Java对PHP服务器hmac_sha1签名认证方法的匹配实现
- HMAC-SHA1加密,OAUTH中签名时使用的一种方法
- 关于android app签名文件获取sha1和MD值
- 微信支付--工具类--产生二维码验证签名
- 微信支付--工具类--产生二维码验证签名
- 微信支付--工具类--创建签名