jsp登录时怎么用MD5()加密,不需要知道MD5是怎么实现的。只要调用MD5函数实现对密码的加密,即可。。

解决方案 »

  1.   

    MD5不是加密算法,是散列算法,不过这个不是问题焦点。
    你的问题不太清晰,如果是在服务器端加密的话,Java本身提供了支持,Google下就有样例。如果是打算在浏览器上先做MD5,然后再提交给服务器端的话,要用JS实现,这里有样例:
    http://hongan.iteye.com/blog/287044
    然后把处理后的字符串POST给服务端。
      

  2.   


    public boolean checkLogin(String uname, String upass) throws Exception
    {
    sql = "SELECT TOP 1 id FROM users WHERE uname=? AND upass=?";
    try
    {
    this.ps = this.connection.prepareStatement(sql);
    this.ps.setString(1, uname);
    this.ps.setString(2, MD5Util.MD5(upass)); ResultSet rs = this.ps.executeQuery();
    if (rs != null)
    {
    flag = true;
    } else
    {
    flag = false;
    }
    } catch (Exception e)
    {
    throw e;
    } finally
    {
    if (this.ps != null)
    {
    try
    {
    this.ps.close();
    } catch (Exception e)
    {
    throw e;
    }
    }
    }
    return flag;
    }package cars.MD5;import java.security.MessageDigest;public class MD5Util
    {
    public final static String MD5(String s)
    {
    char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
    try
    {
    byte[] btInput = s.getBytes();
    // 获得MD5摘要算法的 MessageDigest 对象
    MessageDigest mdInst = MessageDigest.getInstance("MD5");
    // 使用指定的字节更新摘要
    mdInst.update(btInput);
    // 获得密文
    byte[] md = mdInst.digest();
    // 把密文转换成十六进制的字符串形式
    int j = md.length;
    char str[] = new char[j * 2];
    int k = 0;
    for (int i = 0; i < j; i++)
    {
    byte byte0 = md[i];
    str[k++] = hexDigits[byte0 >>> 4 & 0xf];
    str[k++] = hexDigits[byte0 & 0xf];
    }
    return new String(str);
    } catch (Exception e)
    {
    e.printStackTrace();
    return null;
    }
    }// public static void main(String[] args)
    // {
    // System.out.print(MD5Util.MD5(""));
    // }
    }
      

  3.   

    提交之前,先用js加密,jquery好像有个jquery.md5.js