没接触过java,一段程序中修改用户信息时,用户密码没有进行加密就明文写入到数据库,我查了一下语句,下面的是相关语句,应当是语句写的有问题吧,但不知道如何改了,求高手解     String newpassword=workerForm.getPassword();
    if(password.equals(newpassword)){
     worker.setPassword(password);
    }else{
     newpassword=MD5_Util.MD5(newpassword);
     worker.setPassword(newpassword);
    }

解决方案 »

  1.   

    现在的修改密码功能,直接把密码明文写到数据库了,没有MD5加密,而实际是需要进行MD5加密
      

  2.   

    虽然还没在JAVA中做过加密的,VB中做过,VB中是用的模块,JAVA中你用MD5的话 也最好用个BEAN把!  不知道你那是贴了部分代码的问题,代码有问题哟//
      

  3.   

    if(password.equals(newpassword)){ 
        worker.setPassword(password); 
        }
    maybe the part of code have some problem.
    i don't know how to implement password.equals() method.
    and setPassword method whether have use MD5 or not
      

  4.   

    请问你的newpassword是什么?
    你的结果是因为你执行了
    if(password.equals(newpassword)){ 
        worker.setPassword(password);         //在这里set进去的
    }
      

  5.   

    newpassword=MD5_Util.MD5(newpassword); 
    你可以在上面的语句后打印一下加密后的密文,查看是否正常。
      

  6.   

    看了你的程序片段,我觉得这段代码的作用是
    在不知道form传过来的password有没有加密的情况下去比较,拿没加密的跟加过密的去比较,这样是比较不出来的修改方法1:  db的既存password先解密,然后再比较
    修改方法2: form的newpassword,进来就md5加密,然后再比较根据你的worker里需要保存加密还是未加密的password,来决定用哪个修改方法