import org.apache.commons.codec.binary.Base32;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.digest.DigestUtils;import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Utils {
    private static String byteArrayToHexString(byte b[]) {
        StringBuffer resultSb = new StringBuffer();
        for (int i = 0; i < b.length; i++)
            resultSb.append(byteToHexString(b[i]));        return resultSb.toString();
    }    private static String byteToHexString(byte b) {
        int n = b;
        if (n < 0)
            n += 256;
        int d1 = n / 16;
        int d2 = n % 16;
        return hexDigits[d1] + hexDigits[d2];
    }    public static String md5(String origin, String charsetname) {
        String resultString = null;
        try {
            resultString = new String(origin);
            MessageDigest md = MessageDigest.getInstance("MD5");
            if (charsetname == null || "".equals(charsetname))
                resultString = byteArrayToHexString(md.digest(resultString
                        .getBytes()));
            else
                resultString = byteArrayToHexString(md.digest(resultString
                        .getBytes(charsetname)));
        } catch (Exception exception) {
        }
        return resultString;
    }    private static final String hexDigits[] = { "0", "1", "2", "3", "4", "5",
            "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };    public static String md5(String origin) {
        return   MD5Utils.md5(origin,"GBK");
    }    public static String md5(String origin,String key ,String charsetname) {
        return   MD5Utils.md5(origin+key,charsetname);
    }

解决方案 »

  1.   

    public static String md5(String origin, String charsetname)
    {
        try
        {
            var encoding = string.IsNullOrEmpty(charsetname) ? Encoding.UTF8 : Encoding.GetEncoding(charsetname);
            using (var md5 = MD5.Create())
            {
                var hash = md5.ComputeHash(encoding.GetBytes(origin));
                return BitConverter.ToString(hash).Replace("-", "").ToLower();
            }
        }
        catch
        {
        }
        return null;
    }
      

  2.   

    谢谢,我用key
    c214d53c0ea64d9ca237ccbcd484d1d9
    报错,不是受支持的编码名
      

  3.   

    谢谢,我用key
    c214d53c0ea64d9ca237ccbcd484d1d9
    报错,不是受支持的编码名
      

  4.   

    using System;
    using System.Linq;
    using System.Security.Cryptography;
    using System.Text;public class MD5Utils {
        public static void Main(string[] args) {
            Console.WriteLine(Md5("test", Encoding.UTF8));
        }    public static string Md5(string text, Encoding encoding)
        {
            using (var md5 = MD5.Create())
            {
                var hash = md5.ComputeHash(encoding.GetBytes(text));
                return hash.Select(i => i.ToString("x2")).Aggregate("", (accu, next) => accu + next).ToLower();
            }
        }
    }
      

  5.   

     public static String MD5Java2Net(string s)
            {
                char[] hexDigits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
                MD5 md5 = new MD5CryptoServiceProvider();
                byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(s);
                byte[] result = md5.ComputeHash(inputBytes);
                int j = result.Length; char[] str = new char[j * 2]; int k = 0;
                for (int i = 0; i < j; i++) { byte byte0 = result[i]; str[k++] = hexDigits[byte0 >> 4 & 0xf]; str[k++] = hexDigits[byte0 & 0xf]; }
                return new String(str);
            }
      

  6.   

        public static String md5(String origin,String key ,String charsetname) {
            return   MD5Utils.md5(origin+key,charsetname);
        }英中翻译
    origin: 原文
    key: 密码
    charsetName: 字符集名