加密工具类
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
}
补充:综合编程 , 安全编程 ,