java aes cfb_Java 实现 AES 加解密

importjava.io.UnsupportedEncodingException;importjava.security.InvalidAlgorithmParameterException;importjava.security.InvalidKeyException;importjava.security.NoSuchAlgorithmException;importjavax.crypto.BadPaddingException;importjavax.crypto.Cipher;importjavax.crypto.IllegalBlockSizeException;importjavax.crypto.NoSuchPaddingException;importjavax.crypto.spec.IvParameterSpec;importjavax.crypto.spec.SecretKeySpec;public classEncrypt_Decrypt_AES {/*** AES加密算法,调用Java自有类库,采用CFB模式密文反馈无填充模式,可以保证数据长度在加密前后是相同的

*@paramcontent 待加密内容

*@paramkey 密钥

*@returnbyte[] 加密结果用byte数组表示

**/

public static byte[] encrypt_AES(String content, String key) {try{

Cipher aesECB= Cipher.getInstance("AES/CFB/NoPadding");

SecretKeySpec keySpec= new SecretKeySpec(key.getBytes(), "AES");

IvParameterSpec ivSpec= newIvParameterSpec(key.getBytes());

aesECB.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);byte[] result =aesECB.doFinal(content.getBytes());returnresult;

}catch(NoSuchAlgorithmException e) {

e.printStackTrace();

}catch(NoSuchPaddingException e) {

e.printStackTrace();

}catch(InvalidKeyException e) {

e.printStackTrace();

}catch(IllegalBlockSizeException e) {

e.printStackTrace();

}catch(BadPaddingException e) {

e.printStackTrace();

}catch(InvalidAlgorithmParameterException e) {//TODO 自动生成的 catch 块

e.printStackTrace();

}return null;

}/***

*@paramcontent 待解密内容,字符串形式

*@paramkey 解密用的密钥

*@return使用字符串形式返回解密内容

*@throwsUnsupportedEncodingException*/

public static String decrypt_AES(byte[] content, String key) throwsUnsupportedEncodingException {try{

Cipher aesECB= Cipher.getInstance("AES/CFB/NoPadding");

SecretKeySpec keySpec= new SecretKeySpec(key.getBytes(), "AES");

IvParameterSpec ivSpec= newIvParameterSpec(key.getBytes());

aesECB.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);byte[] result =aesECB.doFinal(content);

String AES_decode=new String(result,"utf-8");/************************************/

//System.out.println("解密结果:"+AES_decode);

returnAES_decode;

}catch(NoSuchAlgorithmException e) {

e.printStackTrace();

}catch(NoSuchPaddingException e) {

e.printStackTrace();

}catch(InvalidKeyException e) {

e.printStackTrace();

}catch(IllegalBlockSizeException e) {

e.printStackTrace();

}catch(BadPaddingException e) {

e.printStackTrace();

}catch(InvalidAlgorithmParameterException e) {//TODO 自动生成的 catch 块

e.printStackTrace();

}return null;

}public static void main(String[] str) throwsInvalidKeyException,

InvalidAlgorithmParameterException, IllegalBlockSizeException,

BadPaddingException, UnsupportedEncodingException {

String s= "fire fox 22";byte[] r = encrypt_AES(s, "@93456781234567A");for (bytei : r){

String l= Integer.toBinaryString((i & 0xFF) + 0x100).substring(1);

System.out.print(l+" ");

}

System.out.println();

decrypt_AES(r,"@93456781234567A");

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值