博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常用的字符串加密解密工具类
阅读量:6875 次
发布时间:2019-06-26

本文共 2664 字,大约阅读时间需要 8 分钟。

         提前声明一下:此工具类忘记出处了,很抱歉,如果原创遇上了我立马上您的链接:

加密解密的工具类DataEncryptUtil:

     

package org.util;import java.security.MessageDigest;  import javax.crypto.KeyGenerator;  import javax.crypto.Mac;  import javax.crypto.SecretKey;  import javax.crypto.spec.SecretKeySpec;    import sun.misc.BASE64Decoder;  import sun.misc.BASE64Encoder;    /**  * data encrypt utls  *  * @author skyline  *  */  public class DataEncryptUtil {      public static final String KEY_SHA = "SHA";        public static final String KEY_MD5 = "MD5";        /**      * MAC算法可选以下多种算法      *      * 
      * HmacMD5      * HmacSHA1      * HmacSHA256      * HmacSHA384      * HmacSHA512      * 
*/ public static final String KEY_MAC = "HmacMD5"; /** * BASE64解密 * * @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); } }
    

转载于:https://www.cnblogs.com/a1111/p/7459733.html

你可能感兴趣的文章
c语言学习之基础知识点介绍(三):scanf函数
查看>>
python lambda
查看>>
ubuntu配置caffe的python接口pycaffe
查看>>
C#--笔记
查看>>
[题集]一些有趣的问题
查看>>
[HNOI2010]城市建设
查看>>
系统设计 样题
查看>>
Paint House II
查看>>
[转]进程与线程的一个简单解释
查看>>
测试评审清单
查看>>
算法笔记--匈牙利算法
查看>>
字节流数据的写出(输出)和读取(输入)
查看>>
9月28日学习内容整理:多进程,并发,子进程的创建(multiprocessing模块)
查看>>
3月8日学习内容整理:restframework的视图组件
查看>>
《结对-贪吃蛇游戏-开发环境搭建过程》
查看>>
OO第四阶段总结
查看>>
c#装箱与拆箱
查看>>
列式数据库~clickhouse日常管理
查看>>
Android richtext
查看>>
javascript总结02
查看>>