SHA_1加密原理

来源:互联网 发布:上古世纪捏脸数据在那 编辑:程序博客网 时间:2024/05/22 01:48

  

         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);
                
        
                                               }


                                  }



1 0
原创粉丝点击