源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java使用des加密解密示例分享

  • 时间:2020-01-24 18:48 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java使用des加密解密示例分享
[u]复制代码[/u] 代码如下:
import java.security.Key; import java.security.SecureRandom; import java.security.spec.AlgorithmParameterSpec; import javax.crypto.Cipher; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; import javax.crypto.spec.IvParameterSpec; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class Des {     public static final String ALGORITHM_DES = "DES/CBC/PKCS5Padding";     private static Log log = LogFactory.getLog(Des.class);     /**      * DES算法,加密      *      * @param data 待加密字符串      * @param key  加密私钥,长度不能够小于8位      * @return 加密后的字节数组,一般结合Base64编码使用      * @throws CryptException 异常      */     public static String encode(String key,String data) throws Exception     {         return encode(key, data.getBytes());     }     /**      * DES算法,加密      *      * @param data 待加密字符串      * @param key  加密私钥,长度不能够小于8位      * @return 加密后的字节数组,一般结合Base64编码使用      * @throws CryptException 异常      */     public static String encode(String key,byte[] data) throws Exception     {         try         {       DESKeySpec dks = new DESKeySpec(key.getBytes());       SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");             //key的长度不能够小于8位字节             Key secretKey = keyFactory.generateSecret(dks);             Cipher cipher = Cipher.getInstance(ALGORITHM_DES);             IvParameterSpec iv = new IvParameterSpec("********".getBytes());             AlgorithmParameterSpec paramSpec = iv;             cipher.init(Cipher.ENCRYPT_MODE, secretKey,paramSpec);             byte[] bytes = cipher.doFinal(data);             return Base64.encode(bytes);         } catch (Exception e)         {             throw new Exception(e);         }     }     /**      * DES算法,解密      *      * @param data 待解密字符串      * @param key  解密私钥,长度不能够小于8位      * @return 解密后的字节数组      * @throws Exception 异常      */     public static byte[] decode(String key,byte[] data) throws Exception     {         try         {          SecureRandom sr = new SecureRandom();       DESKeySpec dks = new DESKeySpec(key.getBytes());       SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");             //key的长度不能够小于8位字节             Key secretKey = keyFactory.generateSecret(dks);             Cipher cipher = Cipher.getInstance(ALGORITHM_DES);             IvParameterSpec iv = new IvParameterSpec("********".getBytes());             AlgorithmParameterSpec paramSpec = iv;             cipher.init(Cipher.DECRYPT_MODE, secretKey,paramSpec);             return cipher.doFinal(data);         } catch (Exception e)         { //         e.printStackTrace();             throw new Exception(e);         }     }     /**      * 获取编码后的值      * @param key      * @param data      * @return      * @throws Exception      * @throws Exception      */     public static String decodeValue(String key,String data) throws Exception     {      byte[] datas;      String value = null;      datas = decode(key, Base64.decode(data));   value = new String(datas);   if (value.equals("")){    throw new Exception();   }      return value;     } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部