数据库中的  密码是经过加密后的 十六进制数据 我登录时候 输入用户名 密码  密码参数经过加密程序后 通过和 从数据库中查询出来的密码对比吗 
是否就这样做登录呢  有哪些需要注意的问题啊 第一次涉足这块  还请各位大哥 帮帮忙 感激不尽

解决方案 »

  1.   

    可以用MD5 ,RSA等加密算法。一般用不可还原的加密算法,可以还原那就不安全啦~
      

  2.   

    找个加密方法,在set方法里面套用这个加密方法,其他地方就不用管了。写到数据库里面的也都是加密好的数据了因为你加密方法写在set方法里,你拿到的就已经全都是加密好的数据,所以你要比较直接比较就行了。在你想要显示密码的地方,再解密一下。不过要把密码显示出来的地方不太多吧。
    或许在用户注册成功之后会给他送一个显示密码的邮件。
      

  3.   


    做法没有问题。我们都是通常这样比较的,因为一般密码的加密算法都采用MD5,而MD5算法是不可逆的,也就是说理论上不可能解密。
    比较成功后,将你的用户ID以及用户名或者密码放置到session中。以便其他页面使用或者做拦截器验证是否登录使用。
      

  4.   

    MD5加密,就是用一种单向算法把原密码改掉,数据库存的就是改后的新密码,登录的时候输入原密码,同样用MD5算,再匹配。算法至少符合两个条件:单向,即使看到新密码也无法得到原密码;唯一,原密码与新密码是唯一对应性。
      

  5.   

    最好用MD5 ,RSA等加密算法,如果可以还原那就不安全了,一般的加密算法都是不可逆的
      

  6.   

    package com.ysg;import java.io.UnsupportedEncodingException;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;import sun.misc.BASE64Encoder;/**
     * 
     * @author 余胜国
     * @msg.MD5(信息摘要)加密.
     * 
     */
    public class TestMD5 { /**
     * 按MD5编码
     * 
     * @param str
     * @return
     * @throws NoSuchAlgorithmException
     * @throws UnsupportedEncodingException
     */
    public String EncoderByMd5(String str) throws NoSuchAlgorithmException,
    UnsupportedEncodingException {
    // 确定计算方法(实例化MD5信息摘要)
    MessageDigest md5 = MessageDigest.getInstance("MD5");
    BASE64Encoder base64en = new BASE64Encoder();
    // 加密后的字符串
    String newstr = base64en.encode(md5.digest(str.getBytes("GB2312")));
    return newstr;
    } /**
     * 程序入口
     * 
     * @param args
     */
    public static void main(String[] args) {
    try {
    TestMD5 md5 = new TestMD5();
    String pwddb = "1aEUkwwECG62BQx+unQ0RQ==";// 假如这是数据库保存的密码(数据库保存的密码为之前按MD5加密过的字符串)
    String pwdin = "yushengguo";// 用户在文本框输入的密码 String encodePwdin = md5.EncoderByMd5(pwdin);// 按MD5把用户输入的密码加密后与数据库保存的密码进行对比 /**
     * 如果数据库保存的那一堆东西(MD5加过密的)与我输的字符串按MD5加密后进行对比。 如果相等,证明在未加密之前也是相等的。
     * 另外,说明一点,MD5是单向加密,也就是不可逆, 通俗点说就是,不可以解密,唯一的办法就如实例一样,都按MD5加密后对比.
     * 能理解???
     */
    if (pwddb.equals(encodePwdin)) {
    System.out.println("密码正确!");
    } else {
    System.out.println("密码错误!");
    }
    } catch (NoSuchAlgorithmException e) {
    e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
    e.printStackTrace();
    }
    }}
    //=====================
    刚好给朋友写了一个,拿来给你参考下,希望对你有帮助
      

  7.   

     passWord = md5.getMD5ofStr(this.passWord);