• 大小: 31KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-09-23
  • 语言: Java
  • 标签: java  AES  

资源简介

用java编写的AES加密解密,并且包含界面

资源截图

代码片段和文件信息

package ASE;


import java.util.Formatter;

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;

public class AesEntryDetry {
// 加密秘钥 ,16个字节也就是128 bit
private static final byte[] AES_KEY = { 1 2 3 4 5 6 7 8 9 10 11
12 13 14 15 16 };

// 需要加密的数据(保证16个字节,不够的自己填充)
private static final byte[] SOURCE_BUF = { 1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 };

// Java测试工程入口方法,在这个方法中调用加解密方法并打印结果
public static void main(String[] args) throws Exception {
// 需要加密的原始数据转化成字符串并打印到控制台
String strSource = BytetohexString(SOURCE_BUF);
System.out.println(“source:\n“ + strSource);

// 调用加密方法,对数据进行加密,加密后的数据存放到encryBuf字节数组中
byte[] encryBuf = encrypt(AES_KEY SOURCE_BUF);
// 将加密后的字节数组数据转成字符串并打印到控制台
String strEncry = BytetohexString(encryBuf).toLowerCase();
System.out.println(“encrypte:\n“ + strEncry);

// 调用解密方法,对数据进行解密,解密后的数据存放到decryBuf字节数组中
byte[] decryBuf = decrypt(AES_KEY encryBuf);
// 将解密后的字节数组数据转成字符串并打印到控制台
String strDecry = BytetohexString(decryBuf);
System.out.println(“decrypte:\n“ + strDecry);

}

// 加密方法
private static byte[] encrypt(byte[] key byte[] clear) throws Exception {
SecretKeySpec skeySpec = new SecretKeySpec(key “AES“);
Cipher cipher = Cipher.getInstance(“AES/ECB/NoPadding“);
cipher.init(Cipher.ENCRYPT_MODE skeySpec);
byte[] encrypted = cipher.doFinal(clear);
return encrypted;
}

// 解密方法
private static byte[] decrypt(byte[] key byte[] encrypted)
throws Exception {
SecretKeySpec skeySpec = new SecretKeySpec(key “AES“);
Cipher cipher = Cipher.getInstance(“AES/ECB/NoPadding“);
cipher.init(Cipher.DECRYPT_MODE skeySpec);
byte[] decrypted = cipher.doFinal(encrypted);
return decrypted;
}

// 字节数组按照一定格式转换拼装成字符串用于打印显示
private static String BytetohexString(byte[] b) {
int len = b.length;
StringBuilder sb = new StringBuilder(b.length * (2 + 1));
Formatter formatter = new Formatter(sb);

for (int i = 0; i < len; i++) {
if (i < len - 1)
formatter.format(“0x%02X:“ b[i]);
else
formatter.format(“0x%02X“ b[i]);

}
formatter.close();

return sb.toString();
}
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        301  2016-10-24 23:24  AdvancedEncryptionStandard\.classpath

     文件        402  2016-10-24 23:24  AdvancedEncryptionStandard\.project

     文件        629  2016-10-24 23:24  AdvancedEncryptionStandard\.settings\org.eclipse.jdt.core.prefs

     文件       2849  2016-11-07 23:53  AdvancedEncryptionStandard\bin\ASE\AesEntryDetry.class

     文件       3493  2016-11-07 23:54  AdvancedEncryptionStandard\bin\ASE\EncrypAES.class

     文件        856  2016-10-25 23:53  AdvancedEncryptionStandard\bin\ASE\MessyCode.class

     文件       4175  2016-10-25 23:57  AdvancedEncryptionStandard\bin\ASE\Windows.class

     文件      41174  2016-10-26 00:06  AdvancedEncryptionStandard\image\AES.jpg

     文件       2413  2016-11-07 23:53  AdvancedEncryptionStandard\src\ASE\AesEntryDetry.java

     文件       3659  2016-11-07 23:54  AdvancedEncryptionStandard\src\ASE\EncrypAES.java

     文件        601  2016-10-25 23:53  AdvancedEncryptionStandard\src\ASE\MessyCode.java

     文件       4229  2016-10-25 23:57  AdvancedEncryptionStandard\src\ASE\Windows.java

     目录          0  2016-11-07 23:53  AdvancedEncryptionStandard\bin\ASE

     目录          0  2016-11-07 23:53  AdvancedEncryptionStandard\src\ASE

     目录          0  2016-10-24 23:24  AdvancedEncryptionStandard\.settings

     目录          0  2016-10-25 23:52  AdvancedEncryptionStandard\bin

     目录          0  2016-10-26 00:06  AdvancedEncryptionStandard\image

     目录          0  2016-10-25 23:52  AdvancedEncryptionStandard\src

     目录          0  2016-10-25 23:53  AdvancedEncryptionStandard

----------- ---------  ---------- -----  ----

                64781                    19


评论

共有 条评论