oracle实现aes解密_AES加密解密工具类

packagecom.heyang.util;importjava.security.Key;importjavax.crypto.Cipher;importjavax.crypto.KeyGenerator;importjavax.crypto.SecretKey;importjavax.crypto.spec.SecretKeySpec;importorg.apache.commons.codec.binary.Hex;/*** AES算法加密解密实用工具类

* 说明:

* 作者:何杨(heyang78@gmail.com)

* 创建时间:2010-11-29 上午11:19:11

* 修改时间:2010-11-29 上午11:19:11*/publicclassAESSecurityUtil{//加密方法privatestaticfinalString Algorithm="AES";//进行加密解密的密钥privatestaticfinalString Key="03a53dfc257fe1b0996626a5e2e2210692936bd16cc60f37211cbeef9353e268";/*** 取得解密后的字符串

*

* 说明:

*@paramencryptArr

*@return* 创建时间:2010-12-1 下午03:33:31*/publicstaticString getDecryptString(byte[] encryptArr){try{

Cipher cp=Cipher.getInstance(Algorithm);

cp.init(Cipher.DECRYPT_MODE, getKey());byte[] arr=cp.doFinal(encryptArr);returnnewString(arr);

}catch(Exception ex){

System.out.println("无法进行解密,原因是"+ex.getMessage());returnnull;

}

}/*** 取得加密后的字节数组

*

* 说明:

*@paramoriginalString

*@return* 创建时间:2010-12-1 下午03:33:49*/publicstaticbyte[] getEncryptByteArray(String originalString){try{

Cipher cp=Cipher.getInstance(Algorithm);

cp.init(Cipher.ENCRYPT_MODE, getKey());returncp.doFinal(originalString.getBytes());

}catch(Exception ex){

System.out.println("无法进行加密,原因是"+ex.getMessage());returnnull;

}

}/*** 取得密钥数组

*

* 说明:

*@return*@throwsException

* 创建时间:2010-12-1 下午03:31:08*/privatestaticbyte[] initKey()throwsException{

KeyGenerator kg=KeyGenerator.getInstance(Algorithm);

kg.init(256);

SecretKey sk=kg.generateKey();returnsk.getEncoded();

}/*** 取得字符串形式的密钥

*

* 说明:

*@return*@throwsException

* 创建时间:2010-12-1 下午03:31:36*/publicstaticString initKeyHex()throwsException{returnnewString(Hex.encodeHex(initKey()));

}/*** 取得密钥

*

* 说明:

*@return*@throwsException

* 创建时间:2010-12-1 下午03:33:17*/privatestaticKey getKey()throwsException{byte[] arr=Hex.decodeHex(Key.toCharArray());returnnewSecretKeySpec(arr,Algorithm);

}publicstaticvoidmain(String[] args)throwsException{//System.out.println(initKeyHex());String str="Hello!World 你好!世界。";byte[] arr=AESSecurityUtil.getEncryptByteArray(str);

System.out.print("AES加密后的结果为:");for(byteb:arr){

System.out.print(b);

}

System.out.println();

String str1=AESSecurityUtil.getDecryptString(arr);

System.out.println("AES解密后的字符串为:"+str1);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值