传智播客bbs项目,密码MD5加密及日期转换器
2009-03-14 22:34
363 查看
今天继续学习bbs项目,汤老师讲了会员注册的实现,要对密码进行md5加密,日期型的属性存入数据库前要进行解析,如会员的生日,注册日期等。还有要对用户注册信息进行服务器和客户端验证。下面介绍一下我在学习中遇到的比较重要的知识。
昨天概述了一下md5加密算法,MessageDigest实例对象的digest方法产生数字摘要是一个字节数组,我们应该将这个字节数组转换为16进制的字符串,再存入数据库。具体实现如下:
//获得md5算法的MessageDigest实例对象,
public static String digest(String str){
MessageDigest md = MessageDigest.getInstance("MD5");
//传入要进行数字摘要运算的数据源
md.update(str.getBytes("utf-8"));
//得到数字摘要字节数组
byte[] buf = md.digest();
//得到16进制的字符串
StringBuffer hexString = new StringBuffer();
for (byte b : buf) {
//如果大于00001111,则直接添加其转换后的字符串
if ((b & 0xff) > 0xf) {
hexString.append(Integer.toHexString(0xff & b));
//先添加个“0”,再添加其转换后的字符串
} else {
hexString.append("0").append(Integer.toHexString(0xff & b));
}
}
return hexString.toString();
}
日期转换器:
simpleDateFormat 的format() 和parse方法,分别用于日期/时间的格式化和解析。format方法将日期/时间对象格式化为符合某个本地环境的字符串,parse方法将符合某个本地环境的日期/时间字符串解析为日期/时间对象。
写一个日期转换器,在日期型和字符串型之间转换,
1,写一个实现org.apache.commons.beanutils.Converter的日期转换器类DateConverter类 ,按一定格式把字符串型的日期解析成Date型的,
public class ActionFormDateConverter implements Converter {
private static final Log log = LogFactory.getLog(ActionFormDateConverter.class);
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@SuppressWarnings("unchecked")
public Object convert(Class clazz, Object value) {
if (value == null) {
return null;
}
String source = (String) value;
try {
return new ActionFormDate(sdf.parse(source));
} catch (ParseException e) {
log.debug(e.getMessage());
return null;
}
}
}
2,写一个ActionFormDate类,它继承Date类,用于定义要进行解析的属性。
public class ActionFormDate extends Date {
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
public ActionFormDate() {
}
public ActionFormDate(Date date) {
super(date.getTime());
}
@Override
public String toString() {
return sdf.format(this);
}
}
3,写一个Servlet,把转换器类注册进org.apache.commons.beanutils.ConvertUtils
ConvertUtils.register(new ActionFormDateConverter(), ActionFormDate.class);
4,在web.xml文件中注册第3步写的servlet。
5,这样就可以在formbean中用ActionFormDate定义要进行解析的日期行属性了。
有文件上传时。 jsp页面的表单<form>中要添加属性enctype="multipart/form-data"。
对上传图片进行存储,要使用org.apache.struts.upload.FormFile类,它有一个getFileData()方法可以读取浏览器端上传数据的字节数组。
昨天概述了一下md5加密算法,MessageDigest实例对象的digest方法产生数字摘要是一个字节数组,我们应该将这个字节数组转换为16进制的字符串,再存入数据库。具体实现如下:
//获得md5算法的MessageDigest实例对象,
public static String digest(String str){
MessageDigest md = MessageDigest.getInstance("MD5");
//传入要进行数字摘要运算的数据源
md.update(str.getBytes("utf-8"));
//得到数字摘要字节数组
byte[] buf = md.digest();
//得到16进制的字符串
StringBuffer hexString = new StringBuffer();
for (byte b : buf) {
//如果大于00001111,则直接添加其转换后的字符串
if ((b & 0xff) > 0xf) {
hexString.append(Integer.toHexString(0xff & b));
//先添加个“0”,再添加其转换后的字符串
} else {
hexString.append("0").append(Integer.toHexString(0xff & b));
}
}
return hexString.toString();
}
日期转换器:
simpleDateFormat 的format() 和parse方法,分别用于日期/时间的格式化和解析。format方法将日期/时间对象格式化为符合某个本地环境的字符串,parse方法将符合某个本地环境的日期/时间字符串解析为日期/时间对象。
写一个日期转换器,在日期型和字符串型之间转换,
1,写一个实现org.apache.commons.beanutils.Converter的日期转换器类DateConverter类 ,按一定格式把字符串型的日期解析成Date型的,
public class ActionFormDateConverter implements Converter {
private static final Log log = LogFactory.getLog(ActionFormDateConverter.class);
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@SuppressWarnings("unchecked")
public Object convert(Class clazz, Object value) {
if (value == null) {
return null;
}
String source = (String) value;
try {
return new ActionFormDate(sdf.parse(source));
} catch (ParseException e) {
log.debug(e.getMessage());
return null;
}
}
}
2,写一个ActionFormDate类,它继承Date类,用于定义要进行解析的属性。
public class ActionFormDate extends Date {
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
public ActionFormDate() {
}
public ActionFormDate(Date date) {
super(date.getTime());
}
@Override
public String toString() {
return sdf.format(this);
}
}
3,写一个Servlet,把转换器类注册进org.apache.commons.beanutils.ConvertUtils
ConvertUtils.register(new ActionFormDateConverter(), ActionFormDate.class);
4,在web.xml文件中注册第3步写的servlet。
5,这样就可以在formbean中用ActionFormDate定义要进行解析的日期行属性了。
有文件上传时。 jsp页面的表单<form>中要添加属性enctype="multipart/form-data"。
对上传图片进行存储,要使用org.apache.struts.upload.FormFile类,它有一个getFileData()方法可以读取浏览器端上传数据的字节数组。
相关文章推荐
- 网上图书商城项目学习笔记-036工具类之CommonUtils及日期转换器
- 鑫安财富项目随记2--验证密码 关于日期的输入
- 【从业余项目中学习1】C# 实现XML存储用户名密码(MD5加密)
- 传智播客bbs项目,在Properties文件中配置BeanFactory
- 传智播客bbs项目,jstl的几个标签
- 传智播客bbs项目,解决mysql中文乱码问题
- 传智播客bbs项目,发表主题附件的上传与下载
- BBS项目笔记之七:Ajax实现帖子回复
- BBS项目笔记之八:hibernate底层查询的实现
- 登录密码md5加密
- spring MVC自定义日期转换器
- springmvc配置全局日期转换器
- JAVA中使用MD5加密实现密码加密
- 记录一个使用MD5加密密码的小工具类
- JDBC快速入门教程(附bbs、购物项目教程及源码)
- [传智播客][4天工作流之JBPM项目实战全套(价值1000)][F]
- Shiro-密码的MD5加密
- 第七周项目2-友元类(时间日期混合)
- 密码、文件MD5加密,密码sha256、sha384、sha512Hex等加密