设为首页 加入收藏

TOP

JAVADES加密解密实现
2014-11-16 16:20:34 来源: 作者: 【 】 浏览:14
Tags:JAVADES 加密解密 实现

  package com.txl.test;


  import java.security.SecureRandom;


  import javax.crypto.Cipher;


  import javax.crypto.SecretKey;


  import javax.crypto.SecretKeyFactory;


  import javax.crypto.spec.DESKeySpec;


  /**


  * DES加解密,支持与delphi交互(字符串编码需统一为UTF-8)


  *


  * @author wym


  */


  public class DESCipherCrossoverDelphi {


  /**


  * 密钥


  */


  public static final String KEY = "u4Gqu4Z8";


  private final static String DES = "DES";


  /**


  * 加密


  *


  * @param src


  * 明文(字节)


  * @param key


  * 密钥,长度必须是8的倍数


  * @return 密文(字节)


  * @throws Exception


  */


  public static byte[] encrypt(byte[] src, byte[] key) throws Exception {


  // DES算法要求有一个可信任的随机数源


  SecureRandom sr = new SecureRandom();


  // 从原始密匙数据创建DESKeySpec对象


  DESKeySpec dks = new DESKeySpec(key);


  // 创建一个密匙工厂,然后用它把DESKeySpec转换成


  // 一个SecretKey对象


  SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);


  SecretKey securekey = keyFactory.generateSecret(dks);


  // Cipher对象实际完成加密操作


  Cipher cipher = Cipher.getInstance(DES);


  // 用密匙初始化Cipher对象


  cipher.init(Cipher.ENCRYPT_MODE, securekey, sr);


  // 现在,获取数据并加密


  // 正式执行加密操作


  return cipher.doFinal(src);


  }


  /**


  * 解密


  *


  * @param src


  * 密文(字节)


  * @param key


  * 密钥,长度必须是8的倍数


  * @return 明文(字节)


  * @throws Exception


  */


  public static byte[] decrypt(byte[] src, byte[] key) throws Exception {


  // DES算法要求有一个可信任的随机数源


  SecureRandom sr = new SecureRandom();


  // 从原始密匙数据创建一个DESKeySpec对象


  DESKeySpec dks = new DESKeySpec(key);


  // 创建一个密匙工厂,然后用它把DESKeySpec对象转换成


  // 一个SecretKey对象


  SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);


  SecretKey securekey = keyFactory.generateSecret(dks);


  // Cipher对象实际完成解密操作


  Cipher cipher = Cipher.getInstance(DES);


  // 用密匙初始化Cipher对象


  cipher.init(Cipher.DECRYPT_MODE, securekey, sr);


  // 现在,获取数据并解密


  // 正式执行解密操作


  return cipher.doFinal(src);


  }


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java对象序列化加密解密 下一篇在Java中使用DES加密解密算法

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: