这里有新鲜出炉的 Java 函数式编程,程序狗速度看过来!
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台(即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。
这篇文章主要介绍了 Java 实现 url 加密处理的方法, 涉及 java 基于 base64、编码转换实现加密解密相关操作技巧, 需要的朋友可以参考下
本文实例讲述了 Java 实现 url 加密处理的方法。分享给大家供大家参考,具体如下:
- 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:关于加密解密感兴趣的朋友还可以参考本站在线工具:
希望本文所述对大家 java 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0818/338490.html