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程序设计有所帮助。