Java加密解密工具,JavaSE/JavaEE/Android都适用.
SHA1 MD5 BASE64 AES
package longshu.utils.security;
import java.lang.reflect.Method;
import java.security.Key;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
/**
* Java加密解密工具.
* JavaSE/JavaEE/Android都适用
*
* @author longshu 2016年4月13日
*/
public class EncryptDecrypt {
// 无需创建对象
private EncryptDecrypt() {
}
/**
* SHA1加密Bit数据
* @param source byte数组
* @return 加密后的byte数组
*/
public static byte[] SHA1Bit(byte[] source) {
try {
MessageDigest sha1Digest = MessageDigest.getInstance("SHA-1");
sha1Digest.update(source);
byte targetDigest[] = sha1Digest.digest();
return targetDigest;
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
}
/**
* SHA1加密字符串数据
* @param source 要加密的字符串
* @return 加密后的字符串
*/
public static String SHA1(String source) {
return byte2HexStr(SHA1Bit(source.getBytes()));
}
/**
* MD5加密Bit数据
* @param source byte数组
* @return 加密后的byte数组
*/
public static byte[] MD5Bit(byte[] source) {
try {
// 获得MD5摘要算法的 MessageDigest对象
MessageDigest md5Digest = MessageDigest.getInstance("MD5");
// 使用指定的字节更新摘要
md5Digest.update(source);
// 获得密文
return md5Digest.digest();
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
}
/**
* MD5加密字符串,32位长
* @param source 要加密的内容
* @return 加密后的内容
*/
public static String MD5(String source) {
return byte2HexStr(MD5Bit(source.getBytes()));
}
/**
* BASE64编码
* &