• java Encryption&Decryption


    The encryption class:

    package cn.com.smartcost.qy.util;
    
    import java.security.Key;  
    import java.security.Security;  
      
    import javax.crypto.Cipher;  
      
    /** 
     * encrypt and decryption
     * @author wangfeng 
     * @since 2013-4-27 15:50:26 
     * @version 1.0 
     * 
     */  
    public class EncryptionDecryption {  
        private static String strDefaultKey = "wfkey";  
          
      //encrypt 
        private Cipher encryptCipher = null;  
          
      // decryption  
        private Cipher decryptCipher = null;  
          
        /** 
         * byte array to hexadecimal
         * @param arrB 
         * @return 16 
         * @throws Exception 
         */  
        public static String byteArr2HexStr(byte[] arrB) throws Exception{  
            int bLen = arrB.length;  
            //
            StringBuffer strBuffer = new StringBuffer(bLen*2);  
            for(int i=0; i != bLen; ++i){  
                int intTmp = arrB[i];  
                //
                while(intTmp < 0){  
                    intTmp = intTmp + 256;//
                }  
                //
                if(intTmp < 16){  
                    strBuffer.append("0");  
                }  
                strBuffer.append(Integer.toString(intTmp,16));  
            }  
            return strBuffer.toString();  
        }  
          
          
        /** 
         * hex to byte array
         * @param hexStr 
         * @return 
         * @throws Exception 
         */  
        public static byte[] hexStr2ByteArr(String hexStr) throws Exception{  
            byte[] arrB = hexStr.getBytes();  
            int bLen = arrB.length;  
            byte[] arrOut = new byte[bLen/2];  
            for(int i=0; i<bLen; i = i+2){  
                String strTmp = new String(arrB,i,2);  
                arrOut[i/2] = (byte)Integer.parseInt(strTmp,16);  
            }  
            return arrOut;  
        }  
          
        /** 
         * encrypt
         * @throws Exception 
         */  
        public EncryptionDecryption() throws Exception {  
            this(strDefaultKey);  
        }  
      
          
          
        /** 
         * encryption
         * @param strKey
         * @throws Exception 
         */  
           @SuppressWarnings("restriction")  
        public EncryptionDecryption(String strKey) throws Exception {  
                Security.addProvider(new com.sun.crypto.provider.SunJCE());  
                Key key = getKey(strKey.getBytes());  
      
                encryptCipher = Cipher.getInstance("DES");  
                encryptCipher.init(Cipher.ENCRYPT_MODE, key);  
      
                decryptCipher = Cipher.getInstance("DES");  
                decryptCipher.init(Cipher.DECRYPT_MODE, key);  
            }  
      
        /** 
         * encrypt
         * @param arrB 
         * @return 
         * @throws Exception 
         */  
        public byte[] encrypt(byte[] arrB) throws Exception{  
            return encryptCipher.doFinal(arrB);  
        }  
          
        /** 
         * encrypt
         * @param strIn 
         * @return
         * @throws Exception 
         */  
        public String encrypt(String strIn) throws Exception{  
            return byteArr2HexStr(encrypt(strIn.getBytes()));  
        }  
          
        /** 
         * decrypt
         * @param arrB 
         * @return  
         * @throws Exception 
         */  
        public byte[] decrypt(byte[] arrB) throws Exception{  
            return decryptCipher.doFinal(arrB);  
        }  
          
        /** 
         * decrypt 
         * @param strIn 
         * @return 
         * @throws Exception 
         */  
        public String decrypt(String strIn) throws Exception{  
            try{  
                return new String(decrypt(hexStr2ByteArr(strIn)));  
            }catch (Exception e) {  
                return "";  
            }  
        }  
          
          
        /** 
         * get the key
         * @param arrBTmp 
         * @return 
         * @throws Exception 
         */  
        private Key getKey(byte[] arrBTmp) throws Exception{  
            byte[] arrB = new byte[8]; //  
            for(int i=0; i<arrBTmp.length && i < arrB.length; ++i){  
                arrB[i] = arrBTmp[i];  
            }  
              
            //
            Key key = new javax.crypto.spec.SecretKeySpec(arrB,"DES");  
            return key;  
        }  
          
    } 
    

      Attention:

    This class nees a jar:sunjce_provider.jar. u can download it from here: http://pan.baidu.com/s/1ntqkU4h

    To use:

    private EncryptionDecryption des = new  EncryptionDecryption("wang");
    //encrypt
    String password = "123456";
    password = des.encrypt(password);
    //decrypt
    password =des.decrypt(password);
    

      

  • 相关阅读:
    Haproxy图解
    Keeplived 配制图解
    日志文件 的管理 logrotate 配置
    Haproxy+MYSQL 负载均衡 原创
    MySQL内存----使用说明全局缓存+线程缓存) 转
    MYSQL内存--------启动mysql缓存机制,实现命中率100% 转
    MYSQL SQL 审核工具 (inception安装步骤)
    MHA手动切换 原创4 (非交互式切换)
    MHA手动切换 原创2 (主参与复制)
    MHA手动在线切换主 原创3(主不参与复制)
  • 原文地址:https://www.cnblogs.com/howlaa/p/4140126.html
Copyright © 2020-2023  润新知