html - 如何将 MD5 加密为变量?

标签 html mysql jsp md5

目前我正在尝试从 MD5 加密的数据库中获取密码。例如:

INSERT INTO Customer VALUES (1001, "Smith", "J.", "Alan", 'Mr', "43 The Glebe", "Mugwell Hill", "Nodnol", "", "N10 4SB", MD5("Alan"), "Mugwell Hill"); 

本例中的密码是 Alan。 我正在尝试比较用户输入的密码。

String userid = request.getParameter("uname");    
    String pwd = request.getParameter("pass");

Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/Erehwon","root", "");
Statement st = con.createStatement();
ResultSet rs;

rs = st.executeQuery("select * from Customer where customer_number='" + userid + "' and passwd ='" + pwd + "'");

if (rs.next()) {
    session.setAttribute("userid", userid);
    //out.println("welcome " + userid);
    //out.println("<a href='logout.jsp'>Log out</a>");
    response.sendRedirect("success.jsp");
} else {
    out.println("Invalid password <a href='login_page.jsp'>try again</a>");
    out.println(pwd);
    out.println(userid);

}

您可能会知道这是通过无效密码实现的,因为输入值不是 MD5 格式。无论如何,我可以将密码转换为 MD5 或解密数据库密码以便它们匹配吗?

最佳答案

  1. 无法从哈希中提取密码。 这是不可能的,因为许多密码可以具有相同的 MD5。假设您有一个 1GB 文件的 MD5。这将是一个非常好的压缩,但这并不是因为您无法恢复初始信息。哈希不是加密。

  2. 您可以比较哈希值:

    • 参见MessageDigest获取MD5:

      MessageDigest.getInstance("MD5").digest(yourString.getBytes("UTF-8"));
      

关于html - 如何将 MD5 加密为变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28813391/

相关文章:

html - 页边距未正确保持在网页浏览器的 100%

javascript - 画廊中可变宽度图像的滚动 block

java - tld 文件中的堆栈

java - spring mvc,css 不工作

javascript - 使用 jquery 插件对 jsp 中的表进行排序

php - 自动缩进 HTML 代码并显示它

html - XSLT 格式化 HTML 输入

php - 为什么 PHP 中的 mySQL 返回空结果?

mysql - PHPMyAdmin SQL 查询字段只允许输入大写字母

php - 我如何制作一个表格来更新我的表格并在我的 TeamStats 页面上显示为一行?