网上找了一下,搜“java md5 加密”,搜出了一堆全是java源代码,不否认这些代码是可用的,但我想这么普遍的需求,难道没有经典的现成的md5加密工具类吗?有必要大家都自己写吗?

解决方案 »

  1.   


    import sun.misc.BASE64Encoder;
    import java.security.*;
    public class MD5{
       public static void main(String rsg[])throws Exception{
             String username="sa";
             String password="sa";  
             MessageDigest md5=MessageDigest.getInstance("MD5"); 
             BASE64Encoder base64en = new BASE64Encoder(); 
             password=base64en.encode(md5.digest(password.getBytes("utf-8")));
             System.out.println(password);
       }
    }   很少的几句代码而已
      

  2.   

    谢谢goldenfish1919,我想找的就是这个,另外请教,为什么要base64和md5一起用呢?
    password=base64en.encode(md5.digest(password.getBytes("utf-8")));这一句不明白我的目标是用户注册时把密码加密后保存数据库,登录时再加密后与数据库比较,我也必须base64和md5一起用吗?
      

  3.   

    System.out.println(java.util.Arrays.toString(md5.digest(password.getBytes("utf-8"))));
    它的输出结果是:[-63, 46, 1, -14, -95, 63, -11, 88, 126, 30, -98, 74, -19, -72, 36, 45]
    这是一个字节数组,BASE64的作用就是把这个字节数组转化成字符串,存取更方便。