好消息,百度网盘专业搜索网站上线了
打开瞧一瞧:
http://bitar.cn
引用jdk中jce.jar模块AES加解密实现
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import sun.misc.BASE64Decoder;
public class Encryption
{
public static void main(String args[]) throws Exception {
String data = "Test String啊啊啊啊啊啊啊啊啊啊啊啊啊啊";
String s=encrypt(data);
System.out.println(s);
System.out.println(desEncrypt(s));
}
public static String encrypt(String data) throws Exception {
try {
String key = "1234567812345678";
String iv = "1234567812345678";
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
int blockSize = cipher.getBlockSize();
byte[] dataBytes = data.getBytes();
int plaintextLength = dataBytes.length;
// if (plaintextLength % blockSize != 0) {
// plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize));
// }
byte[] plaintext = new byte[plaintextLength];
System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length);
SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");
IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());
cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec);
byte[] encrypted = cipher.doFinal(plaintext);
return new sun.misc.BASE64Encoder().encode(encrypted);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static String desEncrypt(String data) throws Exception {
try
{
String key = "1234567812345678";
String iv = "1234567812345678";
byte[] encrypted1 = new BASE64Decoder().decodeBuffer(data);
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");
IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());
cipher.init(Cipher.DECRYPT_MODE, keyspec, ivspec);
byte[] original = cipher.doFinal(encrypted1);
String originalString = new String(original);
return originalString;
}
catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
分享到:
相关推荐
在Java中实现AES(Advanced Encryption Standard)加密和解密算法主要涉及到对称密钥加密技术。AES算法是一种块密码,采用固定大小的128位(16字节)块进行加密和解密,支持128、192和256位的密钥长度。在给定的代码...
本话题主要探讨如何在C/C++和Java之间使用基本的字符串和数组操作实现AES加密解密,而不依赖任何额外的加密库。 首先,我们来了解AES加密的基本原理。AES基于块密码,每个数据块为128位,支持128、192和256位的密钥...
本篇文章将详细介绍如何在Java中实现AES加解密,帮助你理解并掌握这一核心技术。 AES算法是在DES(Data Encryption Standard)的基础上发展起来的,具有更高的安全性,支持128位、192位和256位的密钥长度,而默认的...
本文将详细介绍如何使用Java实现AES的加密和解密过程,特别是针对16位长度的秘钥,并解决加解密过程中可能出现的乱码问题。 首先,AES加密算法有多种工作模式,如ECB(Electronic Codebook)、CBC(Cipher Block ...
java实现aes加解密
本篇文章将深入探讨如何在Java中实现AES加密解密,并介绍相关的关键知识点。 首先,我们需要理解AES加密的基本原理。AES是一种块密码,它以固定大小的数据块(128位)为单位进行操作。加密和解密过程都基于一系列...
java代码-java使用AES加密解密 AES-128-ECB加密 ——学习参考资料:仅用于个人学习使用
在工作中会经常遇到密码加密,URL传参要进行加密,在此我参照一个例子将用java实现的AES加解密程序用实例写出。JS实现AES-GCM加密,java实现AES-GCM解密
delphi7和java通用的AES加密和解密
在Java中,我们可以使用`javax.crypto`包来实现AES加密和解密。以下是实现这个功能的主要步骤: 1. **密钥生成**:首先,我们需要创建一个AES密钥。可以使用`KeyGenerator`类生成一个随机密钥。例如,对于128位的...
本篇将详细介绍Java实现AES加密解密的原理与实践。 AES是一种块密码,它以128位(16字节)的数据块作为处理单位,通过多次替换、置换等操作来实现加密。AES有三个关键参数:密钥长度(128、192或256位)、轮数(10...
在AES加密过程中,通常需要一个密钥(key)来对数据进行加解密。在这个示例中,密钥首先是以字符串形式存在,然后通过`Hex.decodeHex()`方法将其从Hex编码转换回原始的字节数组,这是因为AES算法需要字节形式的密钥...
本资源"Delphi.rar_AES_AES加密_delphi AES加密_delphi 加解密_java delphi aes"提供的是在Delphi编程环境中实现AES加密和解密的示例代码,其目标是与Java平台上的加解密过程保持兼容。 首先,让我们深入了解一下...
通过这个资源,开发者可以获得一个完整的解决方案,实现Delphi和Java环境下的AES加解密互通,从而在跨平台项目中保证数据的安全传输。对于需要在这些环境中进行数据加密和解密的开发者来说,这是一个非常有价值的...
最近需要和银行pos做数据通讯,银行端算法为java实现的 AES/ECB/PKCS5PADDING我也改不了, c/c++这边实现ECB算法本来就少,PKCS5PADDING的更是没有,索性自己动手。工作原因c和java都得熟悉,因此把java端和c/c++...
java语言实现AES加解密
在JAVA中实现AES加密解密,需要理解其工作原理、流程以及相关API的使用。以下是对AES加密解密算法及其JAVA实现的详细讲解。 1. AES算法简介: AES是一种块密码,它将明文数据分成128位的块进行加密。它有三种不同的...
DelphiXE10.3与Java互通AES加解密算法,亲测可用。支持ECB、CBC算法,支持128、192、256密匙长度,支持密匙和向量设置,支持补码方式PKCS5和PKCS7,支持16进制密文和Base64密文。
采用固定AES密钥加密,AES使用PKCS5规则进行补位,加密模式使用AES-ECB