最新国产好看的视频,伊人天堂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é)數組,一般結合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é)數組,一般結合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é)數組
     * @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實現接口限流的示例代碼

    SpringBoot+Resilience4j實現接口限流的示例代碼

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

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

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

    MyBatis-Plus之邏輯刪除的實現

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

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

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

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

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

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

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

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

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

    SpringSecurity6.x多種登錄方式配置小結

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

    關于Mybatis中foreach遍歷Map的實現示例

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

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

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

最新評論

工布江达县| 建水县| 易门县| 肇庆市| 涞水县| 明水县| 凌云县| 宣汉县| 台中市| 临沧市| 阳东县| 鱼台县| 绥芬河市| 三明市| 荣昌县| 陇西县| 依安县| 武清区| 金寨县| 浮梁县| 张北县| 永寿县| 香港| 安国市| 遂昌县| 旺苍县| 丰台区| 嘉荫县| 古浪县| 香河县| 华蓥市| 青河县| 上饶市| 安丘市| 布尔津县| 合肥市| 如皋市| 屯留县| 富蕴县| 灵川县| 屯昌县|