jsp登录时怎么用MD5()加密 jsp登录时怎么用MD5()加密,不需要知道MD5是怎么实现的。只要调用MD5函数实现对密码的加密,即可。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 MD5不是加密算法,是散列算法,不过这个不是问题焦点。你的问题不太清晰,如果是在服务器端加密的话,Java本身提供了支持,Google下就有样例。如果是打算在浏览器上先做MD5,然后再提交给服务器端的话,要用JS实现,这里有样例:http://hongan.iteye.com/blog/287044然后把处理后的字符串POST给服务端。 public boolean checkLogin(String uname, String upass) throws Exception { sql = "SELECT TOP 1 id FROM users WHERE uname=? AND upass=?"; try { this.ps = this.connection.prepareStatement(sql); this.ps.setString(1, uname); this.ps.setString(2, MD5Util.MD5(upass)); ResultSet rs = this.ps.executeQuery(); if (rs != null) { flag = true; } else { flag = false; } } catch (Exception e) { throw e; } finally { if (this.ps != null) { try { this.ps.close(); } catch (Exception e) { throw e; } } } return flag; }package cars.MD5;import java.security.MessageDigest;public class MD5Util{ public final static String MD5(String s) { char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; try { byte[] btInput = s.getBytes(); // 获得MD5摘要算法的 MessageDigest 对象 MessageDigest mdInst = MessageDigest.getInstance("MD5"); // 使用指定的字节更新摘要 mdInst.update(btInput); // 获得密文 byte[] md = mdInst.digest(); // 把密文转换成十六进制的字符串形式 int j = md.length; char str[] = new char[j * 2]; int k = 0; for (int i = 0; i < j; i++) { byte byte0 = md[i]; str[k++] = hexDigits[byte0 >>> 4 & 0xf]; str[k++] = hexDigits[byte0 & 0xf]; } return new String(str); } catch (Exception e) { e.printStackTrace(); return null; } }// public static void main(String[] args)// {// System.out.print(MD5Util.MD5(""));// }} 提交之前,先用js加密,jquery好像有个jquery.md5.js Ext实现tree结构目录如何使节点文本与文本背景颜色进行绑定? Eclipse3.3使用Tomcat6.0插件问题? jspsmart制作文件下载的问题?(100相送) 如何使用dom4j提取节点信息并删除节点? springmvc问题 ibatis处理数据库多列显示成一列处理?不用oracle的wm_concat函数 jsp问题 我在网页里打开CHM文件为什么是乱码?怎么解决? 哪位有条件的能否帮忙做个简单的测试? 哪位有Professional JSP(JSP高级编程)书中代码呀,多谢,急? 但与测试问题 jsp整合fck
你的问题不太清晰,如果是在服务器端加密的话,Java本身提供了支持,Google下就有样例。如果是打算在浏览器上先做MD5,然后再提交给服务器端的话,要用JS实现,这里有样例:
http://hongan.iteye.com/blog/287044
然后把处理后的字符串POST给服务端。
public boolean checkLogin(String uname, String upass) throws Exception
{
sql = "SELECT TOP 1 id FROM users WHERE uname=? AND upass=?";
try
{
this.ps = this.connection.prepareStatement(sql);
this.ps.setString(1, uname);
this.ps.setString(2, MD5Util.MD5(upass)); ResultSet rs = this.ps.executeQuery();
if (rs != null)
{
flag = true;
} else
{
flag = false;
}
} catch (Exception e)
{
throw e;
} finally
{
if (this.ps != null)
{
try
{
this.ps.close();
} catch (Exception e)
{
throw e;
}
}
}
return flag;
}package cars.MD5;import java.security.MessageDigest;public class MD5Util
{
public final static String MD5(String s)
{
char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
try
{
byte[] btInput = s.getBytes();
// 获得MD5摘要算法的 MessageDigest 对象
MessageDigest mdInst = MessageDigest.getInstance("MD5");
// 使用指定的字节更新摘要
mdInst.update(btInput);
// 获得密文
byte[] md = mdInst.digest();
// 把密文转换成十六进制的字符串形式
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++)
{
byte byte0 = md[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
return new String(str);
} catch (Exception e)
{
e.printStackTrace();
return null;
}
}// public static void main(String[] args)
// {
// System.out.print(MD5Util.MD5(""));
// }
}