说明:
散列消息鉴别码,属于单向加密算法。
使用:
散列消息鉴别码,属于单向加密算法。
使用:
1.Java实现:
public class HMACUtil {
public static void main(String args[]) {
String key = generateKey(); // 产生HMAC密钥,需要存起来下次使用
String password = "123456";
String hmacPwd = encrypt(password, key);
System.out.println("加密后的: " + hmacPwd);
}
/**
* 产生HMAC密钥
*/
public static String generateKey() {
try {
KeyGenerator keyGenerator = KeyGenerator.getInstance("HmacMD5");
// 产生密钥对象
SecretKey secretKey = keyGenerator.generateKey();
// 对密钥字节数组进行Base64处理
return Base64.encode(secretKey.getEncoded());
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* HMAC加密
* @param password 密码明文
* @param key 密钥
* @return 加密后的密码
*/
public static String encrypt(String password, String key) {
try {
SecretKey secretKey = new SecretKeySpec(Base64.decode(key), "HmacMD5");
Mac mac = Mac.getInstance(secretKey.getAlgorithm());
mac.init(secretKey);
return Base64.encode(mac.doFinal(password.getBytes()));
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}