java实现aes加密算法代码

上传人:F****n 文档编号:98083229 上传时间:2019-09-08 格式:DOC 页数:10 大小:31KB
返回 下载 相关 举报
java实现aes加密算法代码_第1页
第1页 / 共10页
java实现aes加密算法代码_第2页
第2页 / 共10页
java实现aes加密算法代码_第3页
第3页 / 共10页
java实现aes加密算法代码_第4页
第4页 / 共10页
java实现aes加密算法代码_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《java实现aes加密算法代码》由会员分享,可在线阅读,更多相关《java实现aes加密算法代码(10页珍藏版)》请在金锄头文库上搜索。

1、JAVA实现AES加密算法代码 近些年DES使用越来越少,原因就在于其使用56位密钥,比较容易被破解,近些年来逐渐被AES替代,AES已经变成目前对称加密中最流行算法之一;AES可以使用128、192、和256位密钥,并且用128位分组加密和解密数据。本文就简单介绍如何通过JAVA实现AES加密。1. JAVA实现闲话少许,掠过AES加密原理及算法,关于这些直接搜索专业网站吧,我们直接看JAVA的具体实现。1.1 加密代码有详细解释,不多废话。/* 加密* param content 需要加密的内容* param password 加密密码* return*/public static byt

2、e encrypt(String content, String password) try KeyGenerator kgen = KeyGenerator.getInstance(AES);kgen.init(128, new SecureRandom(password.getBytes();SecretKey secretKey = kgen.generateKey();byte enCodeFormat = secretKey.getEncoded();SecretKeySpec key = new SecretKeySpec(enCodeFormat, AES);Cipher cip

3、her = Cipher.getInstance(AES);/ 创建密码器byte byteContent = content.getBytes(utf-8);cipher.init(Cipher.ENCRYPT_MODE, key);/ 初始化byte result = cipher.doFinal(byteContent);return result; / 加密 catch (NoSuchAlgorithmException e) e.printStackTrace(); catch (NoSuchPaddingException e) e.printStackTrace(); catch

4、 (InvalidKeyException e) e.printStackTrace(); catch (UnsupportedEncodingException e) e.printStackTrace(); catch (IllegalBlockSizeException e) e.printStackTrace(); catch (BadPaddingException e) e.printStackTrace();return null;/* 加密* param content 需要加密的内容* param password 加密密码* return*/public static by

5、te encrypt(String content, String password) try KeyGenerator kgen = KeyGenerator.getInstance(AES);kgen.init(128, new SecureRandom(password.getBytes();SecretKey secretKey = kgen.generateKey();byte enCodeFormat = secretKey.getEncoded();SecretKeySpec key = new SecretKeySpec(enCodeFormat, AES);Cipher ci

6、pher = Cipher.getInstance(AES);/ 创建密码器byte byteContent = content.getBytes(utf-8);cipher.init(Cipher.ENCRYPT_MODE, key);/ 初始化byte result = cipher.doFinal(byteContent);return result; / 加密 catch (NoSuchAlgorithmException e) e.printStackTrace(); catch (NoSuchPaddingException e) e.printStackTrace(); catc

7、h (InvalidKeyException e) e.printStackTrace(); catch (UnsupportedEncodingException e) e.printStackTrace(); catch (IllegalBlockSizeException e) e.printStackTrace(); catch (BadPaddingException e) e.printStackTrace();return null;2.2 解密代码有详细注释,不多废话注意:解密的时候要传入byte数组view plaincopy to clipboardprint?/*解密*

8、param content 待解密内容* param password 解密密钥* return*/public static byte decrypt(byte content, String password) try KeyGenerator kgen = KeyGenerator.getInstance(AES);kgen.init(128, new SecureRandom(password.getBytes();SecretKey secretKey = kgen.generateKey();byte enCodeFormat = secretKey.getEncoded();Se

9、cretKeySpec key = new SecretKeySpec(enCodeFormat, AES);Cipher cipher = Cipher.getInstance(AES);/ 创建密码器cipher.init(Cipher.DECRYPT_MODE, key);/ 初始化byte result = cipher.doFinal(content);return result; / 加密 catch (NoSuchAlgorithmException e) e.printStackTrace(); catch (NoSuchPaddingException e) e.printS

10、tackTrace(); catch (InvalidKeyException e) e.printStackTrace(); catch (IllegalBlockSizeException e) e.printStackTrace(); catch (BadPaddingException e) e.printStackTrace();return null;/*解密* param content 待解密内容* param password 解密密钥* return*/public static byte decrypt(byte content, String password) try

11、 KeyGenerator kgen = KeyGenerator.getInstance(AES);kgen.init(128, new SecureRandom(password.getBytes();SecretKey secretKey = kgen.generateKey();byte enCodeFormat = secretKey.getEncoded();SecretKeySpec key = new SecretKeySpec(enCodeFormat, AES);Cipher cipher = Cipher.getInstance(AES);/ 创建密码器cipher.in

12、it(Cipher.DECRYPT_MODE, key);/ 初始化byte result = cipher.doFinal(content);return result; / 加密 catch (NoSuchAlgorithmException e) e.printStackTrace(); catch (NoSuchPaddingException e) e.printStackTrace(); catch (InvalidKeyException e) e.printStackTrace(); catch (IllegalBlockSizeException e) e.printStac

13、kTrace(); catch (BadPaddingException e) e.printStackTrace();return null;2.3 测试代码String content = test;String password = ;/加密System.out.println(加密前: + content);byte encryptResult = encrypt(content, password);/解密byte decryptResult = decrypt(encryptResult,password);System.out.println(解密后: + new String(

14、decryptResult);String content = test;String password = ;/加密System.out.println(加密前: + content);byte encryptResult = encrypt(content, password);/解密byte decryptResult = decrypt(encryptResult,password);System.out.println(解密后: + new String(decryptResult);输出结果如下:加密前:test解密后:test2.4 容易出错的地方但是如果我们将测试代码修改一下,如下:String content = test;String password = ;/加密System.out.println(加密前: + content);byte encryptResult = encrypt(content, password);try String encryptResultStr = new String(encryptResult,utf-8);/解密byte decryptResult = decrypt(encryptResultStr.getBytes(utf-8

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号