登陸註冊的基本加密方法(可逆)

加密算法java

private static final byte[] DES_KEY = { 21, 1, -110, 82, -32, -85, -128, -65 };
    @SuppressWarnings("restriction")
//加密算法 public static String encryptBasedDes(String data) { String encryptedData = null; try { // DES算法要求有一個可信任的隨機數源 SecureRandom sr = new SecureRandom(); DESKeySpec deskey = new DESKeySpec(DES_KEY); // 建立一個密匙工廠,而後用它把DESKeySpec轉換成一個SecretKey對象 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); SecretKey key = keyFactory.generateSecret(deskey); // 加密對象 Cipher cipher = Cipher.getInstance("DES"); cipher.init(Cipher.ENCRYPT_MODE, key, sr); // 加密,並把字節數組編碼成字符串 encryptedData = new sun.misc.BASE64Encoder().encode(cipher.doFinal(data.getBytes())); } catch (Exception e) { // log.error("加密錯誤,錯誤信息:", e); throw new RuntimeException("加密錯誤,錯誤信息:", e); } return encryptedData; }
//解密算法 @SuppressWarnings("restriction") public static String decryptBasedDes(String cryptData) { String decryptedData = null; try { // DES算法要求有一個可信任的隨機數源 SecureRandom sr = new SecureRandom(); DESKeySpec deskey = new DESKeySpec(DES_KEY); // 建立一個密匙工廠,而後用它把DESKeySpec轉換成一個SecretKey對象 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); SecretKey key = keyFactory.generateSecret(deskey); // 解密對象 Cipher cipher = Cipher.getInstance("DES"); cipher.init(Cipher.DECRYPT_MODE, key, sr); // 把字符串進行解碼,解碼爲爲字節數組,並解密 decryptedData = new String(cipher.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(cryptData))); } catch (Exception e) { throw new RuntimeException("解密錯誤,錯誤信息:", e); } return decryptedData;
}
//註冊功能
    @RequestMapping(value = "/register")
    public ModelAndView register(Management management) {
        ModelAndView mv = new ModelAndView();
        Management management1 =managementRepository.findByManagementPhone(management.getManagementPhone());
        List<Management> management2 = managementRepository.findAll();
        int lastpage=management2.size()/8;

        if (management1==null){
            management.setManagementPass(encryptBasedDes(management.getManagementPass()));
            managementRepository.save(management);

        }
        else {
            management.setManagementID(management1.getManagementID());
            management.setManagementPass(encryptBasedDes(management.getManagementPass()));
            managementRepository.save(management);

        }
       return new ModelAndView("redirect:/management/show?page="+lastpage);
    }

  

//登陸
@RequestMapping(value = "/loginManagement")
    public ModelAndView login(Management management, HttpSession sessoin) {
        ModelAndView mv = new ModelAndView();
        //判斷所輸入帳號密碼是否匹配
        //若是匹配成功
        management.setManagementPass(encryptBasedDes(management.getManagementPass()));
        if (managementService.verifyManagement(management)) {
            //經過名字和密碼找到該Management,並存進session
            Management management1=managementRepository.findByManagementPhoneAndAndManagementPass(management.getManagementPhone(), management.getManagementPass()).get(0);
            sessoin.setAttribute("management", management1);

            //測試從session獲取該Management斷定權限
            Management test=(Management)sessoin.getAttribute("management");
            switch (management1.getManagementRole()){
                case  "1":
                    mv.setViewName("");break;
                case "2":
                case "3":
                    mv.setViewName("");break;
            }
            mv.setViewName("/success.btl");
            return mv;
        }
        //若是匹配不成功
        else {
            mv.setViewName("/login.btl");
            return mv;
        }
相關文章
相關標籤/搜索