SHA_1加密 :
安全散列算法(全称:Secure Hash Algorithm),主要运用于对文件、数字签名以及密码等进行加密处理。
一、思想:接收一段明文,然后以一种不可逆的方式将它转换成一段密文,也可以简单的理解为取一串输入码,并
把这个信息转化为长度较短、位数固定的输出序列即散列值(也称为信息认证代码)的过程。适用于长度不超过
2^64二进制位的消息。根据长度小于2^64位的消息,它会产生一个160位的信息摘要。
二、优点:
1 ~ 不可逆——(无法推出任何部分的原始信息)
2 ~ 防冲突—— (任何输入的信息的变化,哪怕一位,都将导致结果变化)
3 ~ 具有良好的雪崩效应——(找不到具有相同散列结果的两条信息)
三、工具类:
/**
* @ClassName EncryptUtil
* @Description TODO
* @author 李建周
* @date 2016年8月17日 下午7:42:28
*/
public class EncryptUtil {
//从配置文件中获得
private static final PasswordEncoder encoder = new StandardPasswordEncoder();
public static String encrypt(String rawPassword) {
return encoder.encode(rawPassword);
}
public static boolean match(String rawPassword, String password) {
return encoder.matches(rawPassword, password);
}
}
四、登录与注册的运用
1、导入项目所需jar包
spring-security-crypto-3.1.0.RELEASE.jar
dfdsa
2、在项目中的运用
/**
* @ClassName T_userDAO
* @Description TODO
* @author 李建周
* @date 2016年8月17日 下午7:41:26
*/
@Repository
public class T_userDAO {
@Resource
private T_userMapper mapper;
//登录
public String login(T_user user){
T_user ow = mapper.login(user.getUsername());
boolean b = EncryptUtil.match(user.getPassword(), ow.getPassword());
System.out.println(b);
return "ow";
}
//注册
public void register(T_user user){
//SHA_1
user.setPassword(EncryptUtil.encrypt(user.getPassword()));
System.out.println(user.getPassword());
mapper.register(user);
}
}