求Java的MD5加密解密实现类。 要实现对用户的密码进行加密! 然后验证用户的密码!

兄弟,打扰一下,求Java的MD5加密解密实现类。 要实现对用户的密码进行加密! 然后验证用户的密码!?

在应用系统中,SSH2系统中 怎么对用户密码加密,查询的时候怎么解密呢?
①加密。
②解密。
最好简单的说下原理。
最新回答
师太别开灯,是老衲

2024-05-03 01:46:58

我简单说下吧,加密就是存进数据库的时候变成MD5存进去,解密,就是对比的时候,将用户输入的密码转换成MD5和数据库里面的对比。
爱你让我明白

2024-05-03 02:53:42

楼上正解,解密没有必要,反而不安全。
看不见的坚强

2024-05-03 04:09:23

import java.security.*;
import java.util.logging.Level;
import java.util.logging.Logger;
public class md5{
public String md5(String str) {
String s=str;
if(s==null){
return "";
}else{
String value = null;
MessageDigest md5 = null;
try {
md5 = MessageDigest.getInstance("MD5");
}catch (NoSuchAlgorithmException ex) {
Logger.getLogger(md5.class.getName()).log(Level.SEVERE, null, ex);
}
sun.misc.BASE64Encoder baseEncoder = new sun.misc.BASE64Encoder();
try {
value = baseEncoder.encode(md5.digest(s.getBytes("utf-8")));
} catch (Exception ex) {
}
return value;
}
}
}
追问
能大致的说下原理。
还有能我取用户密码的时候怎么算呢?
追答
public String md5(String str) {
String s=str;
if(s==null){
return "";
}else{
String value = null;
MessageDigest md5 = null;
try {
md5 = MessageDigest.getInstance("MD5");
}catch (NoSuchAlgorithmException ex) {
Logger.getLogger(md5.class.getName()).log(Level.SEVERE, null, ex);
}
sun.misc.BASE64Encoder baseEncoder = new sun.misc.BASE64Encoder();
try {
value = baseEncoder.encode(md5.digest(s.getBytes("utf-8")));
} catch (Exception ex) {
}
return value;
}
}
这个函数的返回值就是加密后的字符串,参数就是你要加密的字符串。
用户登陆的时候,获取用户输入的字符串,用这个函数处理后得到密文,与数据库中的加密后的密码(密文)比较,如果一样就是密码正确,否则,错误。
所以是不需要解密算法的。如果用户忘记密码,也不是直接告诉他原来的密码,而是在用户答对密保问题后将密码重置。
追问
md5.class 这个报错呢? Logger 这行可以删除的吧?
我不需要日志记录。
日志记录的我用 log4j 非常的感谢哈。!祝您节日快乐!
追答
不会报错,只有警告。可以不鸟他