SHA_1加密原理

jianzhoulee發表於2016-08-18

  

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


                                  }




相關文章