密码MD5加密及日期转换器

会员注册的实现,要对密码进行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()方法可以读取浏览器端上传数据的字节数组。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值