资源简介
本组代码采用标准AES算法(基础算法引用ElAES.pas,感谢作者),代码支持AES/ECB/PKCS5Padding、AES/CBC/PKCS5Padding 密钥长度128/192/256bit,密钥0填充,Delphi与JAVA互相加解密。

代码片段和文件信息
package aes;
import java.io.UnsupportedEncodingException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
public class AESTest {
public static void main(String args[]) throws UnsupportedEncodingException InvalidAlgorithmParameterException{
System.out.println(System.getProperty(“file.encoding“));
//加密内容
String content = “密码学中的高级加密标准(AdvancedEncryptionStandard,AES)。“;
//String content = “test123456“;
//为与Delphi编码统一,将字符转为UTF8编码(其他语言也相同)
//String ss=new String(content.getBytes()“UTF-8“);
//密钥
String password = “1234567890123456“;
System.out.println(“加密前:“ + content);
byte[] encryptResult = encrypt(content password32); //16位密钥长度128位、24位密钥长度192、32位密钥长度256(在delphi中对应kb128、kb192、快播56)
System.out.println(“加密后:“ + parseByte2HexStr(encryptResult));//将加密后编码转为16进制编码
byte[] decryptResult = decrypt(encryptResultpassword32);
System.out.println(“解密后:“ + new String(decryptResult));
}
/**
* 加密
*
* @param content 需要加密的内容
* @param password 加密密码
* @param keySize 密钥长度162432
* @return
* @throws UnsupportedEncodingException
* @throws InvalidAlgorithmParameterException
*/
public static byte[] encrypt(String content String password int keySize) throws UnsupportedEncodingException InvalidAlgorithmParameterException {
try {
//密钥长度不够用0补齐。
SecretKeySpec key = new SecretKeySpec(ZeroPadding(password.getBytes() keySize) “AES“);
//定义加密算法AES、算法模式ECB、补码方式PKCS5Padding
//Cipher cipher = Cipher.getInstance(“AES/ECB/PKCS5Padding“);
//定义加密算法AES 算法模式CBC、补码方式PKCS5Padding
Cipher cipher = Cipher.getInstance(“AES/CBC/PKCS5Padding“);
//CBC模式模式下初始向量 不足16位用0补齐
IvParameterSpec iv = new IvParameterSpec(ZeroPadding(“1234567890123456“.getBytes()16));
byte[] byteContent = content.getBytes();
//初始化加密
//ECB
//cipher.init(Cipher.ENCRYPT_MODE key);
//CBC
cipher.init(Cipher.ENCRYPT_MODE keyiv);
byte[] result = cipher.doFinal(byteContent);
return result;
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-03-30 20:26 JAVA\
文件 6730 2016-03-30 20:39 JAVA\AESTest.java
文件 598 2016-03-30 20:45 Readme.txt
目录 0 2016-03-30 20:23 Delphi\
文件 274 2016-03-23 15:49 Delphi\AesTest.dpr
文件 27916 2016-03-24 12:54 Delphi\AesTest.dproj
文件 1201 2016-03-24 12:54 Delphi\AesTest.dproj.local
文件 155 2016-03-29 16:21 Delphi\AesTest.identcache
文件 58468 2016-03-24 13:10 Delphi\AesTest.res
文件 176 2016-03-29 16:21 Delphi\AesTest.stat
文件 139553 2015-08-19 09:06 Delphi\ElAES.pas
文件 8654 2016-03-30 20:00 Delphi\JDAESExtend.pas
文件 2589 2015-08-19 09:06 Delphi\untAES.pas
文件 3809 2016-03-29 15:19 Delphi\untTest.dfm
文件 3991 2016-03-30 19:50 Delphi\untTest.pas
相关资源
- JS实现AES-GCM加密,java实现AES-GCM解密。
- 完美使用RSA2结合AES对数据进行加密兼
- aes加密算法 五种模式
- Android实现登录界面和功能
- RSA加密传输AES的key和iv js加密 java解
- 高性能AES256对称加解密,兼容Java、
- BouncyCastleProvider jar包
- Java使用winzipaes对zip文件的操作支持中
- android使用AES加密对文件进行前中后三
- android使用AES加密和解密文件
- java AES加密解密并有详细注释程序窗口
- AES加密解密JAVA实现带源码
- local_policy.jar和US_export_policy.jar java解密
- AES加密访问数据库连接
- c/c++ 与java互通 AES加密解密,算法EC
- Qt AES算法ECB模式 PKCS5Padding 128bit
- AESUtils实现了基于AES的ECB模式,选用了
- Android、Java、Web三端通用的RSA和AES工具
- AES加密解决了windows下正常,linux报错
- Java实现的AES/CBC/NoPadding方式实现的文
- Delphi7AES加密解密与JAVA互转默认128位
- RSA与AES混合加密算法的实现java版
- Java AES文件和文本加解密
- java、android、web三端通用的RSA和AES工具
- AES 基于 ECB+zeropadding+128+密码的加解密
- AESjava实现
- RSA+AES 加密工具类 Java
- 对称加密AES算法,前后端实现
- 简单实现AES-CBC-MAC算法
- AES+RSA加密解密js和java互通.zip
评论
共有 条评论