J2EE培训 百分网手机站

java证书的加密与解密代码(4)

时间:2017-05-24 20:04:42 J2EE培训 我要投稿

java证书的加密与解密代码

  public static String decryptString(String value) {

  return decryptString(value, DEFAULT_KEY);

  }

  /**

  * 解密字符串

  * @param value base64形式存在的密文

  * @param key base64形式存在的密钥

  * @return 明文

  * @throws IOException

  */

  public static String decryptString(String value, String key) throws IOException {

  String s=decryptString(value, base64ToBytes(key));

  return s;

  }

  /**

  * 解密字符串

  * @param value base64形式存在的密文

  * @param key 字节数据形式存在的密钥

  * @return 明文

  */

  public static String decryptString(String value, byte[] key) {

  try {

  byte[] data=base64ToBytes(value);

  data=CryptUtils.decryptData(data, key);

  return new String(data, VALUE_ENCODING);

  }catch(Exception e) {

  e.printStackTrace();

  return null;

  }

  }

  }

  CryptHelper.java

  [java]

  package com.gdie.lab.crypt;

  import javax.crypto.Cipher;

  import javax.crypto.SecretKey;

  import javax.crypto.SecretKeyFactory;

  import javax.crypto.spec.DESKeySpec;

  import javax.crypto.spec.IvParameterSpec;

  import org.springframework.util.DigestUtils;

  public class CryptHelper{

  private static String CRYPT_KEY = "zhongqian";

  //加密

  private static Cipher ecip;

  //解密

  private static Cipher dcip;

  static {

  try {

  String KEY = DigestUtils.md5DigestAsHex(CRYPT_KEY.getBytes()).toUpperCase();

  KEY = KEY.substring(0, 8);

  byte[] bytes = KEY.getBytes();

  DESKeySpec ks = new DESKeySpec(bytes);

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

  SecretKey sk = skf.generateSecret(ks);

  IvParameterSpec iv2 = new IvParameterSpec(bytes);

  ecip = Cipher.getInstance("DES/CBC/PKCS5Padding");

  ecip.init(Cipher.ENCRYPT_MODE, sk, iv2);

  dcip = Cipher.getInstance("DES/CBC/PKCS5Padding");

  dcip.init(Cipher.DECRYPT_MODE, sk, iv2);

  }catch(Exception ex) {

  ex.printStackTrace();

  }

  }

  public static String encrypt(String content) throws Exception {

  byte[] bytes = ecip.doFinal(content.getBytes("ascii"));

  return CryptUtils.byte2hex(bytes);

  }

  public static String decrypt(String content) throws Exception {

  byte[] bytes = CryptUtils.hex2byte(content);

  bytes = dcip.doFinal(bytes);

  return new String(bytes, "ascii");

  }

  //test

  public static void main(String[] args) throws Exception {

  String password = "gly";

  String en = encrypt(password);

  System.out.println(en);

  System.out.println(decrypt(en));

  }

  }

  package com.gdie.lab.crypt;

  import javax.crypto.Cipher;

  import javax.crypto.SecretKey;

  import javax.crypto.SecretKeyFactory;

  import javax.crypto.spec.DESKeySpec;

  import javax.crypto.spec.IvParameterSpec;

  import org.springframework.util.DigestUtils;

  public class CryptHelper{

  private static String CRYPT_KEY = "zhongqian";

  //加密

  private static Cipher ecip;

  //解密

  private static Cipher dcip;

  static {

  try {

  String KEY = DigestUtils.md5DigestAsHex(CRYPT_KEY.getBytes()).toUpperCase();

  KEY = KEY.substring(0, 8);

  byte[] bytes = KEY.getBytes();

  DESKeySpec ks = new DESKeySpec(bytes);

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

  SecretKey sk = skf.generateSecret(ks);

  IvParameterSpec iv2 = new IvParameterSpec(bytes);

  ecip = Cipher.getInstance("DES/CBC/PKCS5Padding");

  ecip.init(Cipher.ENCRYPT_MODE, sk, iv2);

  dcip = Cipher.getInstance("DES/CBC/PKCS5Padding");

  dcip.init(Cipher.DECRYPT_MODE, sk, iv2);

  }catch(Exception ex) {

  ex.printStackTrace();

  }

  }

  public static String encrypt(String content) throws Exception {

  byte[] bytes = ecip.doFinal(content.getBytes("ascii"));

  return CryptUtils.byte2hex(bytes);