Java实现HmacSHA1加密
2017-03-27 00:00
609 查看
摘要: java hmacsha1
最近项目中,和第三方公司有个接口调用,第三方公司给的接口地址要验签,其中用到了HmacSHA1加密
记录一下,以备不时之需
可以加一个参数,针对不同的加密方式,只需要改变传入的参数值即可。
下面是从网上找到一个byte[]数组转换String的方法
可以和网上在线加密工具进行对比 http://encode.chahuo.com/ 来验证是否加密正确。
最近项目中,和第三方公司有个接口调用,第三方公司给的接口地址要验签,其中用到了HmacSHA1加密
记录一下,以备不时之需
public class HMAC { /** * 定义加密方式 * MAC算法可选以下多种算法 * <pre> * HmacMD5 * HmacSHA1 * HmacSHA256 * HmacSHA384 * HmacSHA512 * </pre> */ private static final String KEY_MAC = "HmacMD5"; private static final String KEY_MAC_SHA1 = "HmacSHA1"; private static final String CHARSET_UTF8 = "UTF-8"; /* 使用 HmacSha1 加密 */ public static String hmacSha1Encrypt(String encryptText, String encryptKey) throws Exception { byte[] text = encryptText.getBytes(CHARSET_UTF8); byte[] keyData = encryptKey.getBytes(CHARSET_UTF8); SecretKeySpec secretKey = new SecretKeySpec(keyData, KEY_MAC_SHA1); Mac mac = Mac.getInstance(secretKey.getAlgorithm()); mac.init(secretKey); return byte2hex(mac.doFinal(text)); } //二行制转字符串 public static String byte2hex(byte[] b) { StringBuilder hs = new StringBuilder(); String stmp; for (int n = 0; b!=null && n < b.length; n++) { stmp = Integer.toHexString(b & 0XFF); if (stmp.length() == 1) hs.append('0'); hs.append(stmp); } return hs.toString().toUpperCase(); } }
可以加一个参数,针对不同的加密方式,只需要改变传入的参数值即可。
下面是从网上找到一个byte[]数组转换String的方法
try{ String by = HMAC.hmacSha1Encrypt("caoke","advancement"); System.out.println("by ============"+by);//88951F2AA794A7153675230F008EBD0D5720FFC2 }catch (Exception e){ e.printStackTrace(); }
可以和网上在线加密工具进行对比 http://encode.chahuo.com/ 来验证是否加密正确。
相关文章推荐
- java 实现 hmac_sha1加密
- HMAC-SHA1 BASE64编码 java源代码实现
- Java对PHP服务器hmac_sha1签名认证方法的匹配实现
- java实现HMACSHA256加密签名
- Java实现SHA1加密代码实例
- Java实现 Base64、MD5、MAC、HMAC加密
- HMAC_SHA1加密-PKCS5_PBKDF2_HMAC_SHA1的方法实现
- java实现HMACSHA256(md5私钥key)加密签名
- Java 详解单向加密--MD5、SHA和HMAC及简单实现实例
- 在Java中使用MessageDigest实现MD5,sha1等加密
- java实现SHA1签名加密
- java HMAC_SHA1加密
- [绍棠_Swift] Swift4.0如何实现字符串的HMAC_SHA1加密
- HMAC-SHA1的java源代码实现
- Java对PHP服务器hmac_sha1签名认证方法的匹配实现
- Java对PHP服务器hmac_sha1签名认证方法的匹配实现
- Swift - 如何实现字符串的HMAC_SHA1加密
- sha1加密代码的java实现
- Qt 中实现 hmac Sha1 加密并以 base64编码输出
- Java实现SHA1加密