输入一个字符串,要生成一个整数,20位的整数。
利用MD5的API,怎么做?

解决方案 »

  1.   


    mport java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;public class md5 {
     public String str; public void md5s(String plainText) {
      try {
       MessageDigest md = MessageDigest.getInstance("MD5");
       md.update(plainText.getBytes());
       byte b[] = md.digest();   int i;   StringBuffer buf = new StringBuffer("");
       for (int offset = 0; offset < b.length; offset++) {
        i = b[offset];
        if (i < 0)
         i += 256;
        if (i < 16)
         buf.append("0");
        buf.append(Integer.toHexString(i));
       }
       str = buf.toString();
       System.out.println("result: " + buf.toString());// 32位的加密
       System.out.println("result: " + buf.toString().substring(8, 24));// 16位的加密
      } catch (NoSuchAlgorithmException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();  }
     } public static void main(String agrs[]) {
      md5 md51 = new md5();
      md51.md5s("4");//加密4
     }} 
      

  2.   

    http://blog.csdn.net/qiushyfm/archive/2009/08/19/4464512.aspx
    java 加密解密简单实现
    看一下我的博客吧。
      

  3.   

    import java.math.BigInteger;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;public class md5 {
    public static void md5s(String plainText) {
    try {
    MessageDigest md = MessageDigest.getInstance("MD5");
    md.update(plainText.getBytes());
    byte b[] = md.digest();
    BigInteger bg=new BigInteger(1,b);
    System.out.println(bg.toString().substring(0, 20));
    } catch (NoSuchAlgorithmException e) {
    e.printStackTrace();
    }
    } public static void main(String agrs[]) {
    md5.md5s("4");
    }
    }