MD5加密

来源:互联网 发布:淘宝搜索排名优化 编辑:程序博客网 时间:2024/05/20 12:48
 import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;/** * MD5加密工具类 *  */public final class MD5Util {/** * MD5加密方法 */public static String Md5Encrypt(String source) {StringBuilder res = new StringBuilder();try {MessageDigest md = MessageDigest.getInstance("MD5");md.update(source.getBytes());byte[] md5Bytes = md.digest();for (int i = 0; i < md5Bytes.length; i++) {int t = md5Bytes[i] & 0xff;if (t <= 0xf) {res.append("0");}res.append(Integer.toHexString(t));}} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return res.toString();}public static String buildStr(Object[] values) {StringBuffer strBuf = new StringBuffer();if (values != null) {int size = values.length;for (int i = 0; i < size; i++) {strBuf.append(values[i]);}}return strBuf.toString().toLowerCase();}public static String getEncoding(String str) {String encode = "GB2312";try {if (str.equals(new String(str.getBytes(encode), encode))) {String s = encode;return s;}} catch (Exception exception) {}encode = "ISO-8859-1";try {if (str.equals(new String(str.getBytes(encode), encode))) {String s1 = encode;return s1;}} catch (Exception exception1) {}encode = "UTF-8";try {if (str.equals(new String(str.getBytes(encode), encode))) {String s2 = encode;return s2;}} catch (Exception exception2) {}encode = "GBK";try {if (str.equals(new String(str.getBytes(encode), encode))) {String s3 = encode;return s3;}} catch (Exception exception3) {}return "";}public static void main(String[] args) throws Exception {String a = "e10adc3949ba59abbe56e057f20f883e";System.out.println(Md5Encrypt("123456"));System.out.println(Md5Encrypt("123456").equals(a));}}


private static final char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5','6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };/** * Takes the raw bytes from the digest and formats them correct. * * @param bytes *            the raw bytes from the digest. * @return the formatted bytes. */private static String getFormattedText(byte[] bytes) {int len = bytes.length;StringBuilder buf = new StringBuilder(len * 2);// 把密文转换成十六进制的字符串形式for (int j = 0; j < len; j++) { buf.append(HEX_DIGITS[(bytes[j] >> 4) & 0x0f]);buf.append(HEX_DIGITS[bytes[j] & 0x0f]);}return buf.toString();}public static final String encode(String str){if (str == null) {return null;}try {MessageDigest messageDigest = MessageDigest.getInstance("SHA1");messageDigest.update(str.getBytes());return getFormattedText(messageDigest.digest());} catch (Exception e) {throw new RuntimeException(e);}}public static void main(String[] args) {String a="9fe2839c7d19fe2511ef5cc3d63bd475b139fc83";System.out.println(encode("12356").equals(a));}


0 0
原创粉丝点击