<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    lyyb2001

    只是為方便自己找記錄而已
    posts - 57, comments - 27, trackbacks - 0, articles - 5
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理

    登陸用戶名的加密與解密

    Posted on 2015-03-27 10:50 skycity 閱讀(209) 評論(0)  編輯  收藏 所屬分類: J2EE技術
    package com.skycity.framework.utility;
    import javax.crypto.Cipher;
    import javax.crypto.KeyGenerator;
    import javax.crypto.SecretKey;
    import javax.crypto.spec.SecretKeySpec;

    import sun.misc.BASE64Decoder;
    import sun.misc.BASE64Encoder;

    import com.skycity.framework.Constant;

    public class EncryptUtil {
        // 加密字符串
        public static String encryptMode(String keybyte, String src) {
            try { // 生成密鑰
                SecretKey deskey = new SecretKeySpec(new BASE64Decoder().decodeBuffer(keybyte), Constant.ALGORITHM); // 加密
                Cipher c1 = Cipher.getInstance(Constant.ALGORITHM);
                c1.init(Cipher.ENCRYPT_MODE, deskey);
                byte[] result = c1.doFinal(src.getBytes());
                return new BASE64Encoder().encode(result);
            } catch (java.security.NoSuchAlgorithmException e1) {
                e1.printStackTrace();
            } catch (javax.crypto.NoSuchPaddingException e2) {
                e2.printStackTrace();
            } catch (java.lang.Exception e3) {
                e3.printStackTrace();
            }
            return null;
        }
     
        // 解密字符串
        public static String decryptMode(String keybyte, String encryStr) {
            try { // 生成密鑰
                SecretKey deskey = new SecretKeySpec(new BASE64Decoder().decodeBuffer(keybyte), Constant.ALGORITHM); // 解密
                Cipher c1 = Cipher.getInstance(Constant.ALGORITHM);
                c1.init(Cipher.DECRYPT_MODE, deskey);
                byte[] result = c1.doFinal(new BASE64Decoder().decodeBuffer(encryStr));
                return new String(result);
            } catch (java.security.NoSuchAlgorithmException e1) {
                e1.printStackTrace();
            } catch (javax.crypto.NoSuchPaddingException e2) {
                e2.printStackTrace();
            } catch (java.lang.Exception e3) {
                e3.printStackTrace();
            }
            return null;
        }
        //創建一個密鑰
        public static byte[] createSecretKey() {
    KeyGenerator keygen = null;
    try {
    keygen = KeyGenerator.getInstance(Constant.ALGORITHM);
    SecretKey deskey = keygen.generateKey();
    return deskey.getEncoded();
    } catch (Exception e) {
    LogUtil.error("NoSuchAlgorithmException!");
    }
    return null;
    }
        
        public static void main(String[] args){ 
            final byte[] keyBytes = createSecretKey();    
            String key= new BASE64Encoder().encode(keyBytes);
            String szSrc = "admin";
            System.out.println("加密前的字符串:" + szSrc);
            String password = encryptMode(key,szSrc);
            System.out.println("加密后的字符串:" + password);
    String result = decryptMode(key, password);
            System.out.println("解密后的字符串:" + result);
        }
    }

    數據庫表中有一個字段用于保存Key,一個字段用于保存password,更改密碼的時候,重新生成一個KEY,然后生成一個PASSWORD,匹配保存到數據庫中。
    當登陸時,用數據庫保存的KEY和password進行解密,然后與登陸時輸入的password進行比較,如果相等,則成功。
    算法支持AES,DES,DESede,Blowfish等算法


    Lyyb2001
    主站蜘蛛池模板: 亚洲AV无码一区二区二三区入口 | 亚洲日韩精品无码一区二区三区 | 国产免费一区二区视频| 一级毛片免费毛片毛片| 一级一看免费完整版毛片| 人人鲁免费播放视频人人香蕉| 美女一级毛片免费观看| 日韩毛片在线免费观看| 一级毛片视频免费| 成人国产精品免费视频| 国产成人免费AV在线播放| 午夜免费福利小电影| 亚洲国产精品免费在线观看| 97在线观看永久免费视频| 猫咪社区免费资源在线观看| 亚洲成人网在线观看| 久久亚洲欧洲国产综合| 亚洲真人无码永久在线| 无码乱人伦一区二区亚洲一| 亚洲毛片基地日韩毛片基地| 伊人久久亚洲综合影院首页| 亚洲无人区码一二三码区别图片| 亚洲6080yy久久无码产自国产| 精品在线视频免费| a国产成人免费视频| 青青草无码免费一二三区| 91成年人免费视频| 国产大片91精品免费看3| 97无码免费人妻超级碰碰夜夜| 日韩免费在线观看| 久久久久国产成人精品亚洲午夜 | 午夜一级免费视频| 亚洲精品专区在线观看| 无码乱人伦一区二区亚洲| 亚洲午夜久久久久久尤物| 亚洲午夜精品久久久久久人妖| 亚洲中文字幕无码av在线| 青青视频免费在线| 欧洲精品99毛片免费高清观看| 我要看免费的毛片| 亚洲永久无码3D动漫一区|