1 package com.ice.webos.util.security;
2
3 import java.io.UnsupportedEncodingException;
4 import java.math.BigInteger;
5 import java.security.Key;
6 import java.security.MessageDigest;
7 import java.security.SecureRandom;
8
9 import javax.crypto.Cipher;
10 import javax.crypto.KeyGenerator;
11 import javax.crypto.Mac;
12 import javax.crypto.SecretKey;
13 import javax.crypto.SecretKeyFactory;
14 import javax.crypto.spec.DESKeySpec;
15 import javax.crypto.spec.SecretKeySpec;
16
17 import sun.misc.BASE64Decoder;
18 import sun.misc.BASE64Encoder;
19
20 /**21 *
- 22 *
- BASE64的加密解密是双向的,可以求反解。23 *
- MD5、SHA以及HMAC是单向加密,任何数据加密后只会产生唯一的一个加密串,通常用来校验数据在传输过程中是否被修改。24 *
- HMAC算法有一个密钥,增强了数据传输过程中的安全性,强化了算法外的不可控因素。25 *
- DES DES-Data Encryption Standard,即数据加密算法。26 * DES算法的入口参数有三个:Key、Data、Mode。27 *
- 28 *
- Key:8个字节共64位,是DES算法的工作密钥;29 *
- Data:8个字节64位,是要被加密或被解密的数据;30 *
- Mode:DES的工作方式,有两种:加密或解密。31 *
- 34 *35 *@authorIce_Liu36 *37 */
38 public class CryptUtil {
39 private static final String KEY_MD5 = "MD5";
40 private static final String KEY_SHA = "SHA";
41 /**42 * MAC算法可选以下多种算法43 *44 *
45 *46 * HmacMD547 * HmacSHA148 * HmacSHA25649 * HmacSHA38450 * HmacSHA51251 *52 */
53 public static final String KEY_MAC = "HmacMD5";
54
55 /**56 * BASE64解密57 *58 *@paramkey59 *@return60