常用的字符串加密解密工具类
来源:互联网 发布:unity3d 四元数 编辑:程序博客网 时间:2024/06/05 16:58
提前声明一下:此工具类忘记出处了,很抱歉,如果原创遇上了我立马上您的链接:
加密解密的工具类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算法可选以下多种算法 * * <pre> * HmacMD5 * HmacSHA1 * HmacSHA256 * HmacSHA384 * HmacSHA512 * </pre> */ 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); } }
0 0
- 常用的字符串加密解密工具类
- 字符串常用加密、解密工具类.
- 字符串加密解密工具类
- 字符串加密解密工具
- Java对字符串进行加密解密的工具类
- 常用的字符串加密和解密
- 加密解密字符串的类
- 字符串的加密解密
- 【加密解密】对字符串的加密解密
- 加密/解密工具类
- 加密解密工具类
- 加密解密工具类
- 加密,解密工具类
- 字符串加密解密类
- 字符串加密解密类
- 使用DES加密解密的工具类
- 使用DES加密解密的工具类
- 3DES加密解密的工具类
- NestedScrollView的使用
- poj 1251 jungle roads
- OpenCV On Android环境配置最新&最全指南(Eclipse篇)
- 重写和继承关系中的构造方法
- Matlab coder 踩过的那些坑
- 常用的字符串加密解密工具类
- Linux(五) 之 bash工作原理
- LQOJ ALGO-156 表达式计算
- Mac下安装iPython
- Android5.0后的ViewGroup添加子View问题
- 对于VS2012的位图无法加载到资源视图“Bitmap”中的解决方案
- android MediaPlayer简易播放器
- C++之lib和dll实例及简单分析
- day30_struts2_valueStack