Java实现url加密处理的方法示例

本文实例讲述了Java实现url加密处理的方法。分享给大家供大家参考,具体如下:

创新互联公司专业为企业提供台安网站建设、台安做网站、台安网站设计、台安网站制作等企业网站建设、网页设计与制作、台安企业网站模板建站服务,10年台安做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

package test;
import java.security.Key;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class ThreeDES {
  public static String crypt(String content,String password,int i){
    try {
      KeyGenerator generator = KeyGenerator.getInstance("AES");
      generator.init(new SecureRandom(password.getBytes()));
      Key key = generator.generateKey();
      generator = null;
      if(i == 1){
        return getEncString(content,key);
      }
      else if(i == 2){
        return getDesString(content,key);
      }
    } catch (Exception e) {
      return null;
    }
    return null;
  }
  /**
   * 加密String明文输入,String密文输出
   *
   * @param strMing
   * @return
   */
  private static String getEncString(String strMing,Key key) {
    byte[] byteMi = null;
    byte[] byteMing = null;
    String strMi = "";
    BASE64Encoder base64en = new BASE64Encoder();
    try {
      byteMing = strMing.getBytes("UTF8");
      byteMi = getEncCode(byteMing,key);
      strMi = base64en.encode(byteMi);
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      base64en = null;
      byteMing = null;
      byteMi = null;
    }
    return strMi;
  }
  /**
   * 解密 以String密文输入,String明文输出
   *
   * @param strMi
   * @return
   */
  private static String getDesString(String strMi, Key key) {
    BASE64Decoder base64De = new BASE64Decoder();
    byte[] byteMing = null;
    byte[] byteMi = null;
    String strMing = "";
    try {
      byteMi = base64De.decodeBuffer(strMi);
      byteMing = getDesCode(byteMi,key);
      strMing = new String(byteMing, "UTF8");
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      base64De = null;
      byteMing = null;
      byteMi = null;
    }
    return strMing;
  }
  /**
   * 加密以byte[]明文输入,byte[]密文输出
   *
   * @param byteS
   * @return
   */
  private static byte[] getEncCode(byte[] byteS,Key key) {
    byte[] byteFina = null;
    Cipher cipher;
    try {
      cipher = Cipher.getInstance("AES");
      cipher.init(Cipher.ENCRYPT_MODE, key);
      byteFina = cipher.doFinal(byteS);
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      cipher = null;
    }
    return byteFina;
  }
  /**
   * 解密以byte[]密文输入,以byte[]明文输出
   *
   * @param byteD
   * @return
   */
  private static byte[] getDesCode(byte[] byteD,Key key) {
    Cipher cipher;
    byte[] byteFina = null;
    try {
      cipher = Cipher.getInstance("AES");
      cipher.init(Cipher.DECRYPT_MODE, key);
      byteFina = cipher.doFinal(byteD);
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      cipher = null;
    }
    return byteFina;
  }
  public static void main(String[] args) {
    System.out.println(ThreeDES.crypt("bindMobile=13023130171&fenjihao=107", "bbbbb", 1));
    System.out.println(ThreeDES.crypt("GT+F0fcFNGiq73/+FaX9pK9n9zqxwqz9sZ7MQdSp1BxWJXWn7EwnvniQpAOaGi0W", "bbbbb", 2));
  }
}

PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:

URL网址16进制加密工具:
http://tools.jb51.net/password/urlencodepwd

MD5在线加密工具:
http://tools.jb51.net/password/CreateMD5Password

迅雷、快车、旋风URL加密/解密工具:
http://tools.jb51.net/password/urlrethunder

在线散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt

在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha

在线sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。


新闻名称:Java实现url加密处理的方法示例
文章源于:http://azwzsj.com/article/joechs.html