MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
想要做一个web网站,入口得搭建好,用户的信息数据也要统一保护好,保护不好会造成安全隐患,一般情况用户个人信息中的账户密码是不被管理员允许看到的,所以要对用户的账户进行加密,我用的是MD5算法
思路
1.用户注册 密码经过后台加盐度 和一个salt插入到数据库中
2.用户登录先查询数据库中的salt然后通过salt盐度密码 与数据库中已经盐度过的密码进行匹配!匹配成功,人证通过登录密码!
- 注册代码
public int zhuCe(UserPojo userPojo)
{
String salt = UUID.randomUUID().toString().toUpperCase();
String md5Password = getMd5Password(userPojo.getPassword(), salt);
// System.out.println(salt+"盐值"+md5Password+"加密后");
userPojo.setSalt(salt);
userPojo.setPassword(md5Password);
int t;
if (loginMapper.cxsf(userPojo).size()==0)
{
t=loginMapper.zhuCe(userPojo);
}
else
{
t=-1;
}
return t;
}
- 登录代码
public int denglu(UserPojo userPojo)
{
//从数据库中查询盐值
String salt = loginMapper.salt(userPojo);
//md5加密数据
String md5Password = getMd5Password(userPojo.getPassword(), salt);
// System.out.println(salt+"盐值"+md5Password+"加密后");
userPojo.setSalt(salt);
userPojo.setPassword(md5Password);
int t;
//查询电话号是否存在
if( loginMapper.cxphone(userPojo).size()== 1)
{
//查询密码是否正确
if( loginMapper.cxpassword(userPojo).size()== 1)
{
//是否已经审核
if( loginMapper.cxshenhe(userPojo)== 0)
{
//未审核:7
System.out.println("7++");
t=7;
}
else
{
if( loginMapper.cxshenhe(userPojo)== 2)
{
//未通过审核:8
System.out.println("8++");
t=8;
}
else
{
//通过审核,正常登录 返回角色信息
//存入角色id 和权限
t=loginMapper.denglu(userPojo).getQid();
loginMapper.addjilu(userPojo);
}
}
}
else
{ //密码不正确:6
System.out.println("6++");
t=6;
}
}
else
{ //电话不存在:5
System.out.println("5++");
t=5;
}
return t;
}