zoukankan      html  css  js  c++  java
  • java Des 加密解密技术

    package com.esb;

    import javax.crypto.Cipher;
    import javax.crypto.SecretKey;
    import javax.crypto.SecretKeyFactory;
    import javax.crypto.spec.DESKeySpec;
    import javax.crypto.spec.IvParameterSpec;
    import sun.misc.BASE64Decoder;
    import sun.misc.BASE64Encoder;

    public class Des {

        //
        //加密数据
        //
     public static String encrypt(String message, String key, String IV)
       throws Exception {
      Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
      BASE64Decoder base64De = new BASE64Decoder();
      BASE64Encoder base64En = new BASE64Encoder();
      DESKeySpec desKeySpec = new DESKeySpec(base64De.decodeBuffer(key));

      SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
      SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
      IvParameterSpec iv = new IvParameterSpec(base64De.decodeBuffer(IV));
      cipher.init(Cipher.ENCRYPT_MODE, secretKey, iv);

      byte[] result = cipher.doFinal(message.getBytes("utf-8"));
      return base64En.encodeBuffer(result);
     }
     
     // 解密数据
     public static String decrypt(String message,String key, String IV) throws Exception {
       BASE64Decoder base64De = new BASE64Decoder();
             byte[] bytesrc = base64De.decodeBuffer(message);
             Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");   
             DESKeySpec desKeySpec = new DESKeySpec(base64De.decodeBuffer(key));  
             SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");  
             SecretKey secretKey = keyFactory.generateSecret(desKeySpec);  
             IvParameterSpec iv = new IvParameterSpec(base64De.decodeBuffer(IV));
             cipher.init(Cipher.DECRYPT_MODE, secretKey, iv);     
             byte[] retByte = cipher.doFinal(bytesrc);    
             return new String(retByte);
     }
     
     public static void main(String[] args) throws Exception {
      String key = "8SpOkb2LJcw=";
      String IV  = "I9RIqgOpVk4=";
      String value="loginName=admin&logintime=2010/03/15 15:01:01 ";
      String jiami=java.net.URLEncoder.encode(value, "utf-8");
      jiami = value;
      System.out.println("需要加密的数据:"+jiami);
      String a= encrypt(jiami, key, IV);
      System.out.println("加密后的数据为:"+a);
      
      String c="hDPqGpcGs4QHl-T5-58nSAAtAW35ZUCpuLXfcjReChzOrzdn9kfiQI1lVnqvvSHE";
             c="hDPqGpcGs4QHl+T5+58nSAAtAW35ZUCpuLXfcjReChzOrzdn9kfiQI1lVnqvvSHE";
      System.out.println("提供的加密后的数据:"+c);
      String b = decrypt(c,key,IV) ;
      System.out.println("解密后的数据:"+b);

     }
    }

  • 相关阅读:
    javascript中对象两种创建方式
    javascript中in用法介绍
    爬虫介绍
    解决“(1146, "Table 'mydb.django_session' doesn't exist")”报错的方法
    使用docker 安装oracle
    Mac. 修改bash_file
    http://www.yyne.com/python使用-urllib-quote-进行-url-编码小技巧/
    pycharm database 使用
    pycharm add configuration
    mysql cmmand not found
  • 原文地址:https://www.cnblogs.com/anuoruibo/p/3324560.html
Copyright © 2011-2022 走看看