url加密参数 (java版)

**

* 加密解密类
*
*
*
*/
package ?com.abacus.common?;
import ?java.security.? * ;
import ?javax.crypto.? * ;
/**
*加密解密类

*/
public ? class ?Eryptogram?
{
????
private ? static ?String?Algorithm? = " DES " ;
????
// 定义加密算法,可用DES,DESede,Blowfish
  ????? static ? boolean ?debug? = false ?;
????
/**
????*构造子注解.
????
*/
????
public ?Eryptogram?()
????{
????}
????
/**
????*生成密钥
????*@returnbyte[]返回生成的密钥
????*@throwsexception扔出异常.
????
*/
????
public ? static ? byte ?[]getSecretKey?() throws ?Exception?
????{
????????KeyGenerator?keygen?
= KeyGenerator.getInstance?(Algorithm?);
????????SecretKey?deskey?
= keygen.generateKey?();
????????
if ?(debug?)System.out.println?( " 生成密钥: " + byte2hex?(deskey.getEncoded?()));
????????
return ?deskey.getEncoded?();
????}
????
/**
????*将指定的数据根据提供的密钥进行加密
????*@paraminput需要加密的数据
????*@paramkey密钥
????*@returnbyte[]加密后的数据
????*@throwsException
????
*/
????
public ? static ? byte ?[]encryptData?( byte ?[]input?, byte ?[]key?) throws ?Exception?
????{
????????SecretKey?deskey?
= new ?javax.crypto.spec.SecretKeySpec?(key?,Algorithm?);
????????
if ?(debug?)
????????{
????????????System.out.println?(
" 加密前的二进串: " + byte2hex?(input?));
????????????System.out.println?(
" 加密前的字符串: " + new ?String?(input?));
????????}
????????Cipher?c1?
= Cipher.getInstance?(Algorithm?);
????????c1.init?(Cipher.ENCRYPT_MODE?,deskey?);
????????
byte ?[]cipherByte? = c1.doFinal?(input?);
????????
if ?(debug?)System.out.println?( " 加密后的二进串: " + byte2hex?(cipherByte?));
????????
return ?cipherByte?;
????}
????
/**
????*将给定的已加密的数据通过指定的密钥进行解密
????*@paraminput待解密的数据
????*@paramkey密钥
????*@returnbyte[]解密后的数据
????*@throwsException
????
*/
????
public ? static ? byte ?[]decryptData?( byte ?[]input?, byte ?[]key?) throws ?Exception?
????{
????????SecretKey?deskey?
= new ?javax.crypto.spec.SecretKeySpec?(key?,Algorithm?);
????????
if ?(debug?)System.out.println?( " 解密前的信息: " + byte2hex?(input?));
????????Cipher?c1?
= Cipher.getInstance?(Algorithm?);
????????c1.init?(Cipher.DECRYPT_MODE?,deskey?);
????????
byte ?[]clearByte? = c1.doFinal?(input?);
????????
if ?(debug?)
????????{
????????????System.out.println?(
" 解密后的二进串: " + byte2hex?(clearByte?));
????????????System.out.println?(
" 解密后的字符串: " + ( new ?String?(clearByte?)));
????????}
????????
return ?clearByte?;
????}
????
/**
????*字节码转换成16进制字符串
????*@parambyte[]b输入要转换的字节码
????*@returnString返回转换后的16进制字符串
????
*/
????
public ? static ?String?byte2hex?( byte ?[]b?)
????{
????????String?hs?
= "" ;
????????String?stmp?
= "" ;
????????
for ?( int ?n? = 0 ?;n? < b.length?;n? ++ )
????????{
????????????stmp?
= (java.lang.Integer.toHexString?(b?[n?] & 0XFF ?));
????????????
if ?(stmp.length?() == 1 ?)hs? = hs? + " 0 " + stmp?;
????????????
else ?hs? = hs? + stmp?;
????????????
if ?(n? < b.length? - 1 ?)hs? = hs? + " : " ;
????????}
????????
return ?hs.toUpperCase?();
????}
????
public ? static ? void ?main?(String?[]args?)
????{
????????
try ?
????????{
????????????debug?
= false ?;
????????????Eryptogram?etg?
= new ?Eryptogram?();
????????????
byte ?[]key? = etg.getSecretKey?();
????????????System.out.println?(
" key= " + key?);
????????????String?aa?
= " 1234567 " ;
????????????
byte ?[]data? = aa.getBytes?();
????????????System.out.println?(data?);
????????????
byte ?[]en? = etg.encryptData?(data?,key?);
????????????System.out.println?(
" encryptData= " + new ?String?(en?));
????????????
byte ?[]de? = etg.decryptData?(en?,key?);
????????????System.out.println?(
" decryptData= " + new ?String?(de?));
????????}
????????
catch ?(Exception?e?)
????????{
????????????e.printStackTrace?();
????????}
????}
}
247018.html

礼物 2008-12-18 08:51 发表评论
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值