資源簡介
用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? if?(i? 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
評論
共有 條評論