如题,登录时的密码加密用Spring中的方式,在xml中直接引入<password-encoder hash="md5">.用户注册时进入数据库中的密码加密方式 为采用java.security.MessageDigest方式 。现在的问题是登录不进系统 ,也就是用spring加密后的密码与数据库中用essageDigest加密的密码不一至。不知道各位有没有遇过这问题,帮助下下。

解决方案 »

  1.   

    这个倒是没注意, 一般MD5都自己写了,没用Spring的
      

  2.   


    /**
     * 对字符串进行加密处理
     * @param strString
     * @return 加密后的字符串
     */
    private static String stringByMD5(String strString) {
    if (strString != null) {
    try {
    //创建MD5算法的信息摘要   
    MessageDigest md = MessageDigest.getInstance("MD5");
    byte[] results = md.digest(strString.getBytes());

    //将得到的字节数组变成字符串返回   
    String resultString = byteArrayToHexString(results);
    return resultString.toUpperCase();
    } catch (Exception ex) {
    ex.printStackTrace();
    }
    }
    return null;
    }还是写方法吧,统一起来。
      

  3.   

    已搞定,在java中自己采用字符串转换的是BASE64Encoder ;
    也在spring_security.xml中也指定就行了。