最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2014年02月18日 10:38:16   作者:  
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;
    }
}

相關文章

  • SpringBoot+Resilience4j實現(xiàn)接口限流的示例代碼

    SpringBoot+Resilience4j實現(xiàn)接口限流的示例代碼

    Resilience4j 是一個用于實現(xiàn)熔斷、限流、重試等功能的輕量級庫,本文主要介紹了SpringBoot+Resilience4j實現(xiàn)接口限流的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2024-12-12
  • Maven管理多模塊應用的統(tǒng)一版本號實現(xiàn)

    Maven管理多模塊應用的統(tǒng)一版本號實現(xiàn)

    本文主要介紹了Maven管理多模塊應用的統(tǒng)一版本號實現(xiàn),使用versions-maven-plugin插件和占位符結(jié)合flatten-maven-plugin插件來實現(xiàn),感興趣的可以了解一下
    2024-12-12
  • MyBatis-Plus之邏輯刪除的實現(xiàn)

    MyBatis-Plus之邏輯刪除的實現(xiàn)

    這篇文章主要介紹了MyBatis-Plus之邏輯刪除的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • springboot實現(xiàn)SSE(Server?Sent?Event)的示例代碼

    springboot實現(xiàn)SSE(Server?Sent?Event)的示例代碼

    SSE?全稱Server?Sent?Event,直譯一下就是服務器發(fā)送事件,本文主要為大家詳細介紹了springboot實現(xiàn)SSE的相關知識,需要的可以參考一下
    2024-04-04
  • JAVA中的延遲隊列DelayQueue應用解析

    JAVA中的延遲隊列DelayQueue應用解析

    這篇文章主要介紹了JAVA中的延遲隊列DelayQueue應用解析,DelayQueue是一個根據(jù)元素的到期時間來排序的隊列,而并非是一般的隊列那樣先進先出,最快過期的元素排在隊首,越晚到期的元素排得越后,需要的朋友可以參考下
    2023-12-12
  • Java關鍵字this(動力節(jié)點Java學院整理)

    Java關鍵字this(動力節(jié)點Java學院整理)

    java中的this隨處可見,用法也多。通常情況下理解this關鍵字還是很容易的,但是在我初學的時候,有一個疑問卻一直不能很清晰的理解,現(xiàn)在慢慢的理解了,下面通過本文給大家記錄下,有需要的朋友參考下
    2017-03-03
  • Java加載ICC文件的方法和示例代碼

    Java加載ICC文件的方法和示例代碼

    ICC文件,通常用于顏色管理,定義了如何將一個顏色空間轉(zhuǎn)換為另一個顏色空間,在Java中,我們可能需要加載這些文件來進行顏色轉(zhuǎn)換或管理,本文將為您提供加載ICC文件的方法和示例代碼,需要的朋友參考下吧
    2023-08-08
  • SpringSecurity6.x多種登錄方式配置小結(jié)

    SpringSecurity6.x多種登錄方式配置小結(jié)

    SpringSecurity6.x變了很多寫法,本文就來介紹一下SpringSecurity6.x多種登錄方式配置小結(jié),具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • 關于Mybatis中foreach遍歷Map的實現(xiàn)示例

    關于Mybatis中foreach遍歷Map的實現(xiàn)示例

    這篇文章主要介紹了關于Mybatis中foreach遍歷Map的實現(xiàn)示例,MyBatis?是一款優(yōu)秀的半自動的ORM持久層框架,它支持自定義?SQL、存儲過程以及高級映射,需要的朋友可以參考下
    2023-05-05
  • javamail發(fā)送qq郵箱失敗的原因及解決

    javamail發(fā)送qq郵箱失敗的原因及解決

    本文主要介紹了javamail發(fā)送qq郵箱失敗的原因及解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-04-04

最新評論

南丹县| 石门县| 左贡县| 庆元县| 玉门市| 石屏县| 井研县| 冕宁县| 大化| 建瓯市| 蒙自县| 和平区| 青阳县| 渑池县| 茶陵县| 微山县| 利辛县| 天长市| 大庆市| 安图县| 固安县| 乌兰察布市| 榆树市| 南和县| 吐鲁番市| 金坛市| 高平市| 鲜城| 贺兰县| 宁河县| 和静县| 惠东县| 调兵山市| 新竹市| 梧州市| 泉州市| 宜春市| 河曲县| 金寨县| 汕尾市| 汾西县|