一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java使用des加密解密示例分享

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

2019-11-07 12:49java技術網(wǎng) JAVA教程

java使用des加密解密示例,適合java語言的所有平臺,與.net等平臺的加密解密兼容

代碼如下:


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 加密后的字節(jié)數(shù)組,一般結(jié)合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 加密后的字節(jié)數(shù)組,一般結(jié)合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位字節(jié)
            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 解密后的字節(jié)數(shù)組
     * @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位字節(jié)
            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;
    }
}

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美影院一区二区三区 | 国产精品刺激好大好爽视频 | 成年男女免费大片在线观看 | 99久久综合 | 九九大香尹人视频免费 | 免费片在线观看高清 | 欧美亚洲国产一区二区三区 | 欧美午夜视频一区二区 | 女同学高中你下面好紧 | 欧美在线视频一区在线观看 | poren18日本老师hd | 免费av在线视频 | 日本高清不卡一区久久精品 | 美女被狂干 | 男人的天堂在线观看免费 | 精品麻豆国产 | 天天色综合久久 | 日本天堂影院在线播放 | 99热.com| 思久久| 2021年国内自拍 | 免费国产白棉袜踩踏区域 | 精品在线免费播放 | 亚洲26uuuu最新地址 | 四虎海外影院 | 456老汉gay | 海角社区在线登录 | 超强台风免费观看完整版视频 | 超级毛片 | 久久国产精品无码视欧美 | 国产成人亚洲精品91专区手机 | 国产自在自线午夜精品之la | 午夜精品国产自在现线拍 | 99国内精品| 日本黄色一区 | 韩国久播影院理论片不卡影院 | 青草视频网| 四虎国产一区 | 91制片厂制作传媒免费版樱花 | 久久精品黄AA片一区二区三区 | 国产欧美另类久久精品91 |