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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求Java的MD5加密解密实现类。 要实现对用户的密码进行加密! 然后验证用户的密码!相关的知识,希望对你有一定的参考价值。

在应用系统中,SSH2系统中 怎么对用户密码加密,查询的时候怎么解密呢?
①加密。
②解密。
最好简单的说下原理。

我简单说下吧,加密就是存进数据库的时候变成MD5存进去,解密,就是对比的时候,将用户输入的密码转换成MD5和数据库里面的对比。 参考技术A 楼上正解,解密没有必要,反而不安全。 参考技术B 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 非常的感谢哈。!祝您节日快乐!

追答

不会报错,只有警告。可以不鸟他

本回答被提问者和网友采纳

以上是关于求Java的MD5加密解密实现类。 要实现对用户的密码进行加密! 然后验证用户的密码!的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中使用MD5加密工具类实现对数据的加密处理

java实现Md5加密工具类

java加密算法实现

可变MD5加密(Java实现)

数据库如何实现字段加密

Java实现MD5(32/16位)大小写加密