在上一篇文章中,我们实现了向数据库中新增用户名和密码的最基本的操作。当然正式项目中是不可能用到这么简单的账户注册功能的。为了能够将功能变得稍微像样一些,还需要添加一些功能。比如说,将密码进行加密。
首先在com.yiibai.output包下新建一个名为md5的包,然后再包下新建一个名为MD5的类。代码如下:
package com.yiibai.output.md5;
import java.security.MessageDigest;
public class MD5 {
private static final String hexDigIts[]=
{"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};
public static String MD5Encode(String origin,String charsetname) {
String resultString = null;
resultString = new String(origin);
try {
MessageDigest md = MessageDigest.getInstance("MD5");
if (null==charsetname||"".equals(charsetname)){
resultString = byteArrayToHexString(md.digest(resultString.getBytes()));
}else{
resultString = byteArrayToHexString(md.digest(resultString.getBytes(charsetname)));
}
} catch (Exception e) {
e.printStackTrace();
}
return resultString;
}
private static String byteArrayToHexString(byte b[]) {
StringBuffer resutSb = new StringBuffer();
for(int i=0;i<b.length;i++){
resutSb.append(byteToHexString(b[i]));
}
return resutSb.toString();
}
private static String byteToHexString(byte b) {
int n = b;
if(n<0){
n+=256;
}
int d1 = n/16;
int d2 = n%16;
return hexDigIts[d1] + hexDigIts[d2];
}
}
然后,在spring-config.xml中将此类注册成一个bean:
<bean id="MD5" class="com.yiibai.output.md5.MD5"></bean>
修改CsvOutputGenerator文件,将password加密后,再传入数据库中。addUsers方法的代码如下所示:
@Override
public boolean addUsers(String username,String password){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(new String[]{"spring-config.xml"});
Address address = (AddressImpl)applicationContext.getBean("address");
MD5 md5 = (MD5) applicationContext.getBean("MD5");
String passwordMD5 =md5.MD5Encode(password,"utf8");
UsersEntity usersEntity = new UsersEntity();
usersEntity.setUsername(username);
usersEntity.setPassword(passwordMD5);
return address.addUsers(usersEntity);
}
修改完成之后运行tomcat,输入用户名(dog)密码(123456),点击注册:
数据库中的数据: