设为首页 加入收藏

TOP

在Java中使用DES加密解密算法
2014-11-16 16:00:36 来源: 作者: 【 】 浏览:16
Tags:Java 使用 DES 加密解密 算法

  import javax.crypto.*;


  import javax.crypto.spec.DESKeySpec;


  import java.security.NoSuchAlgorithmException;


  import java.security.InvalidKeyException;


  import java.security.SecureRandom;


  import java.security.spec.InvalidKeySpecException;


  /**


  * 通过DES加密解密实现一个String字符串的加密和解密.


  *


  * @author badpeas


  *


  */


  public class EncryptDecryptData {


  public static void main(String[] args) throws NoSuchAlgorithmException,


  InvalidKeyException, NoSuchPaddingException,


  InvalidKeySpecException, IllegalBlockSizeException,


  BadPaddingException {


  // 1.1 >>> 首先要创建一个密匙


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


  SecureRandom sr = new SecureRandom();


  // 为我们选择的DES算法生成一个KeyGenerator对象


  KeyGenerator kg = KeyGenerator.getInstance("DES");


  kg.init(sr);


  // 生成密匙


  SecretKey key = kg.generateKey();


  // 获取密匙数据


  byte rawKeyData[] = key.getEncoded();


  System.out.println("密匙===>" + rawKeyData);


  String str = "hi.baidu.com/badpeas"; // 待加密数据


  // 2.1 >>> 调用加密方法


  byte[] encryptedData = encrypt(rawKeyData, str);


  // 3.1 >>> 调用解密方法


  decrypt(rawKeyData, encryptedData);


  }


  /**


  * 加密方法


  *


  * @param rawKeyData


  * @param str


  * @return


  * @throws InvalidKeyException


  * @throws NoSuchAlgorithmException


  * @throws IllegalBlockSizeException


  * @throws BadPaddingException


  * @throws NoSuchPaddingException


  * @throws InvalidKeySpecException


  */


  public static byte[] encrypt(byte rawKeyData[], String str)


  throws InvalidKeyException, NoSuchAlgorithmException,


  IllegalBlockSizeException, BadPaddingException,


  NoSuchPaddingException, InvalidKeySpecException {


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


  SecureRandom sr = new SecureRandom();


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


  DESKeySpec dks = new DESKeySpec(rawKeyData);


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


  SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");


  SecretKey key = keyFactory.generateSecret(dks);


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇JAVADES加密解密实现 下一篇Java操作ini配置文件类

评论

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