java的des加密

转载 2013年12月05日 21:28:34

工作中用到的,希望对大家有帮助.

 

 

  1. import java.security.Key;  
  2. import java.security.spec.AlgorithmParameterSpec;  
  3.   
  4. import javax.crypto.Cipher;  
  5. import javax.crypto.SecretKeyFactory;  
  6. import javax.crypto.spec.DESKeySpec;  
  7. import javax.crypto.spec.IvParameterSpec;  
  8.   
  9. import sun.misc.BASE64Decoder;  
  10. import sun.misc.BASE64Encoder;  
  11.   
  12.   
  13.   
  14. public class CryptoTools {  
  15.     private static final String key_ = "ising@ws";   //  
  16.     private static final byte [] DESkey = key_.getBytes();//设置密钥,略去  
  17.     private static final byte[] DESIV = { (byte)0x12,(byte0x34, (byte)0x56, (byte)0x78, (byte)0x90,  
  18.             (byte)0xAB, (byte)0xCD,(byte0xEF };//设置向量,略去  
  19.   
  20.     private static AlgorithmParameterSpec iv =null;//加密算法的参数接口,IvParameterSpec是它的一个实现  
  21.     private static Key key =null;  
  22.       
  23.     public  CryptoTools() throws  Exception {  
  24.          DESKeySpec keySpec = new DESKeySpec(DESkey);//设置密钥参数  
  25.          iv = new IvParameterSpec(DESIV);//设置向量  
  26.          SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");//获得密钥工厂  
  27.          key = keyFactory.generateSecret(keySpec);//得到密钥对象  
  28.   
  29.     }  
  30.   
  31.     public  String encode(String data) throws Exception {  
  32.         Cipher enCipher  =  Cipher.getInstance("DES/CBC/PKCS5Padding");//得到加密对象Cipher  
  33.         enCipher.init(Cipher.ENCRYPT_MODE,key,iv);//设置工作模式为加密模式,给出密钥和向量  
  34.         byte[] pasByte = enCipher.doFinal(data.getBytes("utf-8"));  
  35.         BASE64Encoder base64Encoder = new BASE64Encoder();  
  36.         return base64Encoder.encode(pasByte);  
  37.     }  
  38.   
  39.     public  String decode(String data) throws Exception{  
  40.         Cipher deCipher   =  Cipher.getInstance("DES/CBC/PKCS5Padding");  
  41.         deCipher.init(Cipher.DECRYPT_MODE,key,iv);  
  42.         BASE64Decoder base64Decoder = new BASE64Decoder();  
  43.         byte[] pasByte=deCipher.doFinal(base64Decoder.decodeBuffer(data));  
  44.         return new String(pasByte,"UTF-8");  
  45.     }  
  46.     public static void main(String[] args) throws Exception{  
  47.         String value = "hello";  
  48.         CryptoTools tools =new  CryptoTools();  
  49.         System.out.println(tools.encode(value));  
  50.         System.out.println("解密"+tools.decode(tools.encode(value)));  
  51.     }  
  52.   
  53. }   
  54. }  

 

 

修改后的:

 

  1. public String encode(String data) throws Exception   
  2.     {  
  3.         byte [] DESkey = key_.getBytes();  
  4.         byte[] DESIV = { (byte)0x12,(byte0x34, (byte)0x56, (byte)0x78, (byte)0x90,(byte)0xAB, (byte)0xCD,(byte0xEF  };  
  5.         DESKeySpec keySpec = new DESKeySpec(DESkey);  
  6.         iv = new IvParameterSpec(DESIV);  
  7.         SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");  
  8.         key = keyFactory.generateSecret(keySpec);  
  9.         SecureRandom sr = new SecureRandom();   
  10.         Cipher enCipher = Cipher.getInstance("DES");  
  11.         enCipher.init(Cipher.ENCRYPT_MODE, key,sr);  
  12.         byte[] pasByte = enCipher.doFinal(data.getBytes("utf-8"));  
  13.         BASE64Encoder base64Encoder = new BASE64Encoder();  
  14.         return base64Encoder.encode(pasByte);  
  15.     }  

2009-04-30

相关文章推荐

DES加密解密 java + js

  • 2017年11月10日 09:13
  • 10KB
  • 下载

Java 3des加密算法ECB模式

  • 2017年11月10日 09:54
  • 9KB
  • 下载

JAVA实现DES加密实现详解

package util; import java.security.SecureRandom; import javax.crypto.spec.DESKeySpec; import javax.c...

MD5、AES、DES加密的java实现

  • 2016年07月12日 10:38
  • 84KB
  • 下载

DES加密转JAVA

  • 2015年07月07日 12:53
  • 9KB
  • 下载

java DES加密解密文件

在android开发中或者java开发中,经常用一些加密或者解密文件的,下面是我最近测试的一个DES加密解密文件的方式,记录一下,防止以后忘记了! 下面直接贴代码把,详细的注释都写有: p...

DES数据加密算法Java实现

  • 2014年09月20日 22:41
  • 8KB
  • 下载

DES java objective-c 通用加密

  • 2014年01月10日 10:17
  • 16KB
  • 下载

js前台加密 java后台解密(des)

js: /** * DES加密/解密 * @Copyright Copyright (c) 2006 * @author Guapo * @see DESCore */ ...

Java DES 加密/解密

  • 2015年05月22日 08:31
  • 4KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java的des加密
举报原因:
原因补充:

(最多只允许输入30个字)