当前位置:编程学习 > 网站相关 >>

加密工具类

package com.neusoft.common.encrypt;
002
 
003
import java.security.MessageDigest;
004
 
005
import org.apache.commons.codec.binary.Base64;
006
import org.apache.commons.codec.digest.DigestUtils;
007
 
008 www.zzzyk.com
/**
009
 * 加密方式工具类 (JDK1.6以上)
010
 */
011
public class EncryptUtils {
012
 
013
    /**
014
     * 使用指定的加密算法加密字符串<br>
015
     * @param text 待加密的字符串
016
     * @param encName 加密方法,为null时默认为SHA-256,可以为SHA-1,MD5,SHA-256,SHA-384,SHA-512
017
     * <a href="http://my.oschina.net/u/556800" class="referer" target="_blank">@return</a>
018
     */
019
    public static byte[] degestString(String text, String encName) {
020
        MessageDigest md = null;
021
        byte[] bt = text.getBytes();
022
        try {
023
            if (null == encName) {
024
                encName = "SHA-256";
025
            }
026
            md = MessageDigest.getInstance(encName);
027
            md.update(bt);
028
            return md.digest();
029
        } catch (Throwable t) {
030
            t.printStackTrace();
031
        }
032
        return null;
033
    }
034
 
035
    /**
036
     * BASE64加密
037
     * @param origin 待机解密的byte数组
038
     * <a href="http://my.oschina.net/u/556800" class="referer" target="_blank">@return</a>
039
     */
040
    public static byte[] encryptBASE64(byte[] origin) {
041
        if (origin == null) {
042
            return null;
043
        }
044
        return Base64.encodeBase64(origin);
045
    }
046
 
047
    /**
048
     * BASE64解密,采用Apache的commons-codec包中方法,不建议使用sun自己的
049
     * @param dest 待解密的字节数组
050
     * <a href="http://my.oschina.net/u/556800" class="referer" target="_blank">@return</a>
051
     */
052
    public static byte[] decryptBASE64(byte[] dest) {
053
        if (dest == null) {
054
            return null;
055
        }
056
        return Base64.decodeBase64(dest);
057
    }
058
 
059
    /**
060
     * 使用Apache的codec加密,使用MD5算法<br>
061
     * 注意:返回的字符串为小写,请比较时注意
062
     * @param text 待加密的字符串
063
     * <a href="http://my.oschina.net/u/556800" class="referer" target="_blank">@return</a>
064
     */
065
    public static String getMd5UseApacheCodec(String text) {
066
        if (null == text) {
067
            return null;
068
        }
069
        return DigestUtils.md5Hex(text);
070
    }
071
 
072
    /**
073
     * 使用Apache的codec加密,使用SHA算法<br>
074
     * 注意:返回值为小写字符,请比较时注意
075
     * @param text 待加密的字符串
076
     * @param algorithm 加密算法 SHA-1,SHA-256,SHA-384,SHA-512
077
     * <a href="http://my.oschina.net/u/556800" class="referer" target="_blank">@return</a>
078
     */
079
    public static String getShaUseApacheCodec(String text, String algorithm) {
080
        if (text == null) {
081
            return null;
082
        }
083
        if (null == algorithm) {
084
            return DigestUtils.shaHex(text);
085
        } else {
086
            if ("SHA-1".equals(algorithm)) {
087
                return DigestUtils.shaHex(text);
088
            } else if ("SHA-256".equals(algorithm)) {
089
                return DigestUtils.sha256Hex(text);
090
            } else if ("SHA-384".equals(algorithm)) {
091
                return DigestUtils.sha384Hex(text);
092
            } else if ("SHA-512".equals(algorithm)) {
093
                return DigestUtils.sha512Hex(text);
094
            } else {
095
                return null;
096
            }
097
        }
098
    }
099
 
100
}
补充:综合编程 , 安全编程 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,