Java实现url加密处理的方法示例
本文实例讲述了Java实现url加密处理的方法。分享给大家供大家参考,具体如下:
packagetest; importjava.security.Key; importjava.security.SecureRandom; importjavax.crypto.Cipher; importjavax.crypto.KeyGenerator; importsun.misc.BASE64Decoder; importsun.misc.BASE64Encoder; publicclassThreeDES{ publicstaticStringcrypt(Stringcontent,Stringpassword,inti){ try{ KeyGeneratorgenerator=KeyGenerator.getInstance("AES"); generator.init(newSecureRandom(password.getBytes())); Keykey=generator.generateKey(); generator=null; if(i==1){ returngetEncString(content,key); } elseif(i==2){ returngetDesString(content,key); } }catch(Exceptione){ returnnull; } returnnull; } /** *加密String明文输入,String密文输出 * *@paramstrMing *@return */ privatestaticStringgetEncString(StringstrMing,Keykey){ byte[]byteMi=null; byte[]byteMing=null; StringstrMi=""; BASE64Encoderbase64en=newBASE64Encoder(); try{ byteMing=strMing.getBytes("UTF8"); byteMi=getEncCode(byteMing,key); strMi=base64en.encode(byteMi); }catch(Exceptione){ e.printStackTrace(); }finally{ base64en=null; byteMing=null; byteMi=null; } returnstrMi; } /** *解密以String密文输入,String明文输出 * *@paramstrMi *@return */ privatestaticStringgetDesString(StringstrMi,Keykey){ BASE64Decoderbase64De=newBASE64Decoder(); byte[]byteMing=null; byte[]byteMi=null; StringstrMing=""; try{ byteMi=base64De.decodeBuffer(strMi); byteMing=getDesCode(byteMi,key); strMing=newString(byteMing,"UTF8"); }catch(Exceptione){ e.printStackTrace(); }finally{ base64De=null; byteMing=null; byteMi=null; } returnstrMing; } /** *加密以byte[]明文输入,byte[]密文输出 * *@parambyteS *@return */ privatestaticbyte[]getEncCode(byte[]byteS,Keykey){ byte[]byteFina=null; Ciphercipher; try{ cipher=Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE,key); byteFina=cipher.doFinal(byteS); }catch(Exceptione){ e.printStackTrace(); }finally{ cipher=null; } returnbyteFina; } /** *解密以byte[]密文输入,以byte[]明文输出 * *@parambyteD *@return */ privatestaticbyte[]getDesCode(byte[]byteD,Keykey){ Ciphercipher; byte[]byteFina=null; try{ cipher=Cipher.getInstance("AES"); cipher.init(Cipher.DECRYPT_MODE,key); byteFina=cipher.doFinal(byteD); }catch(Exceptione){ e.printStackTrace(); }finally{ cipher=null; } returnbyteFina; } publicstaticvoidmain(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程序设计有所帮助。