java 包本身已自带了。
import java.security.*;
import java.security.spec.*;
import java.security.interfaces.*;public static byte[] MD5(String rStr)
  {
    try
    {
      MessageDigest md5 = MessageDigest.getInstance(Coding.MD5);
      md5.update(rStr.getBytes());
      return md5.digest();
    }catch(Exception e)
    {
      return new byte[0];
    }
  }我找到这个,请问怎么用,麻烦给下例子,可以解密的不????

解决方案 »

  1.   

    import java.security.SecureRandom;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;import java.net.InetAddress;
    import java.net.UnknownHostException;public class StringEncrypt {
      private static Log logger = LogFactory.getLog(StringEncrypt.class);
      private static String s_id = "";
      private static SecureRandom mySecureRand;
      private String afterMD = "";
      private long secureInitializer;
      {
        mySecureRand = new SecureRandom();
        secureInitializer = mySecureRand.nextLong();
        try {
          s_id = InetAddress.getLocalHost().toString();
          logger.info("success receive:" + s_id);
        }
        catch (UnknownHostException e) {
          logger.info("when host is received, exception catch:" + e);
        }
      }  public StringEncrypt() {
        getEncode();
      }  private void getEncode() {
        //String returnValue = "";
        long time = System.currentTimeMillis();
        MessageDigest myDigest = null;
        StringBuffer sBuffer = new StringBuffer();
        try {
          myDigest = java.security.MessageDigest.getInstance("MD5");
        }
        catch (NoSuchAlgorithmException e) {
          logger.info("init error:" + e);
          System.err.println(e);
        }
        sBuffer.append(s_id)
            .append(":")
            .append(Long.toString(secureInitializer))
            .append(":")
            .append(Long.toString(time));
        myDigest.update(sBuffer.toString().getBytes());
        byte[] array = myDigest.digest();
        afterMD = this.ByteToHex(array).toString();
        //String random = "";
      }  private StringBuffer ByteToHex(byte[] byteArray) {
        StringBuffer sBuffer = new StringBuffer();
        String b;
        for (int i = 0; i < byteArray.length; i++) {
          b = Integer.toHexString(byteArray[i] & 0xff);
          if (b.length() == 1) sBuffer.append('0').append(b);
          else sBuffer.append(b);
        }
        return sBuffer;
      }  public String toString() {
        return afterMD.toUpperCase();
      }
    public static void main(String[] args) {
        StringEncrypt ss = new StringEncrypt();
        System.out.println(ss.toString());
      }}