package sample;

import java.security.
*
;
import javax.crypto.
*
;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: </p>
 *
 * @author George Hill
 * @version 1.0
 
*/


public class Test {
  
  
// 加密使用的Key

  private SecretKey key;
  
  
// 加密算法,JCE可用DES,DESede和Blowfish

  private static final String algorithm = "DES";
  
  
public Test() throws NoSuchAlgorithmException 
{
    KeyGenerator generator 
=
 KeyGenerator.getInstance(algorithm);
    key 
=
 generator.generateKey();
  }

  
  
/**
   * 利用DES算法加密
   * @param s String 需要加密的字符串
   * @return String 加密后的字符串
   * @throws Exception
   
*/

  
public String encryptData(String s) throws Exception {
    Cipher c 
=
 Cipher.getInstance(algorithm);
    c.init(Cipher.ENCRYPT_MODE, key);

    
return new
 String(c.doFinal(s.getBytes()));
  }

  
  
/**
   * 利用DES算法解密
   * @param s String 需要解密的字符串
   * @return String 解密后的字符串
   * @throws Exception
   
*/

  
public String decryptData(String s) throws Exception {
    Cipher c 
=
 Cipher.getInstance(algorithm);
    c.init(Cipher.DECRYPT_MODE, key);

    
return new
 String(c.doFinal(s.getBytes()));
  }

  
  
/**
   * 测试程序
   * @param args String[]
   * @throws Exception
   
*/

  
public static void main(String[] args) throws Exception {
    String s 
= "Hello"
;
    Test test 
= new
 Test();
    String encrypt 
=
 test.encryptData(s);
    System.
out
.println(encrypt);
    String decrypt 
=
 test.decryptData(encrypt);
    System.
out
.println(decrypt);
  }

}