您当前位置: 圣才学习网首页 >> IT类 >> Java程序设计

Java常见加密算法与数字证书(一)(4)

扫码手机阅读
用圣才电子书APP或微信扫一扫,在手机上阅读本文,也可分享给你的朋友。
评论(0
   
来源:网络 作者:未知
 
  通过java代码实现如下:
 
  Java代码
 
  /**
 
  * 初始化HMAC密钥
 
  *
 
  * @return
 
  * @throws Exception
 
  */
 
  public static String initMacKey() throws Exception {
 
  KeyGenerator keyGenerator = KeyGenerator.getInstance(KEY_MAC);
 
  SecretKey secretKey = keyGenerator.generateKey();
 
  return encryptBASE64(secretKey.getEncoded());
 
  }
 
  /**
 
  * HMAC加密
 
  *
 
  * @param data
 
  * @param key
 
  * @return
 
  * @throws Exception
 
  */
 
  public static byte[] encryptHMAC(byte[] data, String key) throws Exception {
 
  SecretKey secretKey = new SecretKeySpec(decryptBASE64(key), KEY_MAC);
 
  Mac mac = Mac.getInstance(secretKey.getAlgorithm());
 
  mac.init(secretKey);
 
  return mac.doFinal(data);
 
  }
 
  给出一个完整类,如下:
 
  Java代码
 
  import java.security.MessageDigest;
 
  import javax.crypto.KeyGenerator;
 
  import javax.crypto.Mac;
 
  import javax.crypto.SecretKey;
 
  import sun.misc.BASE64Decoder;
 
  import sun.misc.BASE64Encoder;
 
  /**
 
  * 基础加密组件
 
  *
 
  * @author 梁栋
 
  * @version 1.0
 
  * @since 1.0
 
  */
 
  public abstract class Coder {
 
  public static final String KEY_SHA = "SHA";
 
  public static final String KEY_MD5 = "MD5";
 
  /**
 
  * MAC算法可选以下多种算法
 
  *
 
  * 
 
  解密
 
  *
 
  * @param key
 
  * @return
 
  * @throws Exception
 
  */
 
  public static byte[] decryptBASE64(String key) throws Exception {
 
  return (new BASE64Decoder()).decodeBuffer(key);
 
  }
 
  /**
 
  * BASE64加密
 
  *
 
  * @param key
 
  * @return
 
  * @throws Exception
 
  */
 
  public static String encryptBASE64(byte[] key) throws Exception {
 
  return (new BASE64Encoder()).encodeBuffer(key);
 
  }
 
  /**
 
  * MD5加密
 
  *
 
  * @param data
 
  * @return
 
  * @throws Exception
 
  */
 
  public static byte[] encryptMD5(byte[] data) throws Exception {
 
  MessageDigest md5 = MessageDigest.getInstance(KEY_MD5);
 
  md5.update(data);
 
  return md5.digest();
 
  }
 
  /**
 
  * SHA加密
 
  *
 
  * @param data
 
  * @return
 
  * @throws Exception
 
  */
 
  public static byte[] encryptSHA(byte[] data) throws Exception {
 
  MessageDigest sha = MessageDigest.getInstance(KEY_SHA);
 
  sha.update(data);
 
  return sha.digest();
 
  }
 
  /**
 
  * 初始化HMAC密钥
 
  *
 
  * @return
 
  * @throws Exception
 
  */
 
  public static String initMacKey() throws Exception {
 
  KeyGenerator keyGenerator = KeyGenerator.getInstance(KEY_MAC);
 
  SecretKey secretKey = keyGenerator.generateKey();
 
  return encryptBASE64(secretKey.getEncoded());
 
  }
 
  /**
 
  * HMAC加密
 
  *
 
  * @param data
 
  * @param key
 
  * @return
 
  * @throws Exception
 
  */
 
  public static byte[] encryptHMAC(byte[] data, String key) throws Exception {
 
  SecretKey secretKey = new SecretKeySpec(decryptBASE64(key), KEY_MAC);
 
  Mac mac = Mac.getInstance(secretKey.getAlgorithm());
 
  mac.init(secretKey);
 
  return mac.doFinal(data);
 
  }
 
  }
 
相关阅读
 
 

小编工资已与此挂钩!一一分钱!求打赏↓ ↓ ↓

如果你喜欢本文章,请赐赏:

已赐赏的人
最新评论(共0条)评论一句