AES的Java实现

来源:互联网 发布:移动3g网络的上传速度 编辑:程序博客网 时间:2024/05/19 20:38

  AES的Java实现

  AES(高级加密标准)是美国联邦政府采用的一种区块加密标准,其替代原先的

  DES加密算法,成为对称密钥加密中最流行的算法之一。

  AES加密解密的实现就不具体介绍了,这里直接给出源码:

  package com.demo.project.monitor.util;成都金牛区哪家男科医院治疗尿道炎好?
治疗前列腺炎成都金牛区男科医院那里好?
双流区蛟龙港江治疗阳痿哪家医院好
成都市治疗勃起障碍那里的医院好?

  import javax.crypto.*;

  import javax.crypto.spec.SecretKeySpec;

  import java.io.UnsupportedEncodingException;

  import java.security.InvalidKeyException;

  import java.security.NoSuchAlgorithmException;药流会不会很痛?
成都安靖无痛人流那家医院好?
武侯区治疗阳痿医院哪家比较好
五块石金牛区哪家割包皮好
成都中和镇做人流哪家医院好?

  import java.security.SecureRandom;

  public class AESEncryption {

  private String password = "Password";

  public AESEncryption(){

  }

  public AESEncryption(String password){

  this.password = password;

  }成都中和镇做人流哪家医院好?
成都蛟龙港做人流哪家医院好?
妇科检查去成都哪家医院好
成都市治疗阴道炎妇科医院那里好?

  /**

  * 加密

  * @param content 加密内容

  * @return

  */

  public String encrypt(String content) {

  try {

  KeyGenerator kgen = KeyGenerator.getInstance("AES");

  kgen.init(128, new SecureRandom(password.getBytes()));

  SecretKey secretKey = kgen.generateKey();

  byte[] enCodeFormat = secretKey.getEncoded();

  SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");

  Cipher cipher = Cipher.getInstance("AES");// 创建密码器

  byte[] byteContent = content.getBytes("utf-8");妇科检查去成都哪家医院好
成都市治疗阴道炎妇科医院那里好?
成都郫县治疗月经不调的医院那里好?
成都青羊区哪里有割包皮好的医院
成都九龙医院在线咨询?

  cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化

  byte[] result = cipher.doFinal(byteContent);

  return parseByte2HexStr(result); // 加密

  } catch (NoSuchAlgorithmException e) {

  e.printStackTrace();

  } catch (NoSuchPaddingException e) {

  e.printStackTrace();

  } catch (InvalidKeyException e) {

  e.printStackTrace();金牛区妇科哪里有做妇科检查好的医院?
成都金牛区男科医院哪家较好
成都红光附近治疗早泄哪儿好?
武侯区治疗早泄可靠的男科医院?
金牛区包茎手术费用是多少?

  } catch (UnsupportedEncodingException e) {

  e.printStackTrace();

  } catch (IllegalBlockSizeException e) {

  e.printStackTrace();

  } catch (BadPaddingException e) {

  e.printStackTrace();

  }

  return null;

  }

  /**解密

  * @param content 解密内容

  * @return

  */

  public String decrypt(String content) {

  try {

  KeyGenerator kgen = KeyGenerator.getInstance("AES");

  kgen.init(128, new SecureRandom(password.getBytes()));

  SecretKey secretKey = kgen.generateKey();成都九龙医院在线咨询?
成都双流哪里的医院能够治好阳痿
成都成华区附近哪儿的医院治疗早泄好
郫都区人流医院排行榜?
治疗月经不调成都青白江附近哪里的医院好
双流去哪家妇科医院好?

  byte[] enCodeFormat = secretKey.getEncoded();

  SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");

  Cipher cipher = Cipher.getInstance("AES");// 创建密码器

  cipher.init(Cipher.DECRYPT_MODE, key);// 初始化

  byte[] result = cipher.doFinal(parseHexStr2Byte(content));

  return new String(result); // 解密

  } catch (NoSuchAlgorithmException e) {

  e.printStackTrace();

  } catch (NoSuchPaddingException e) {

  e.printStackTrace();

  } catch (InvalidKeyException e) {

  e.printStackTrace();成都中和镇做人流哪家医院好?
成都蛟龙港做人流哪家医院好?
妇科检查去成都哪家医院好
成都市治疗阴道炎妇科医院那里好?
成都郫县治疗月经不调的医院那里好?
成都青羊区哪里有割包皮好的医院

  } catch (IllegalBlockSizeException e) {

  e.printStackTrace();

  } catch (BadPaddingException e) {

  e.printStackTrace();

  }

  return null;

  }

  /**

  * 将二进制转换成16进制

  * @param buf

  * @return

  */

  private String parseByte2HexStr(byte buf[]) {

  StringBuffer sb = new StringBuffer();

  for (int i = 0; i < buf.length; i++) {

  String hex = Integer.toHexString(buf[i] & 0xFF);

  if (hex.length() == 1) {

  hex = '0' + hex;

  }

  sb.append(hex.toUpperCase());

  }

  return sb.toString();

  }

  /**

  * 将16进制转换为二进制

  * @param hexStr

  * @return

  */

  private byte[] parseHexStr2Byte(String hexStr) {

  if (hexStr.length() < 1)

  return null;

  byte[] result = new byte[hexStr.length()/2];

  for (int i = 0;i< hexStr.length()/2; i++) {

  int high = Integer.parseInt(hexStr.substring(i*2, i*2+1), 16);

  int low = Integer.parseInt(hexStr.substring(i*2+1, i*2+2), 16);

  result[i] = (byte) (high * 16 + low);

  }

  return result;

  }

  }

原创粉丝点击