密码MD5加密及日期转换器

今天继续学习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()方法可以读取浏览器端上传数据的字节数组。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值