AES 128位和AES 256位加密解密
问题描述:
我正在使用以下java代码进行AES 128位加密和解密,该代码工作正常。对于相同的键和数据,每次都会给出相同的输出。AES 128位和AES 256位加密解密
链接1:http://aesencryption.net/#Java-aes-encryption-example
(final String strPssword = "dAtAbAsE98765432";)
对于AES 256位加密和解密我发现了另一个Java代码。 它每次给我不同的输出。
链接2:AES-256 Password Based Encryption/Decryption in Java
我的问题是,是否 我需要WIRTE不同的代码为AES 128位和256位AES? 还是他们一样?只有密钥大小不同?
对于256位加密,只有我需要在第一Java代码的链接
public boolean setKey(String sKey){
arbtKey = Arrays.copyOf(arbtKey, 32); // use only first 256 bits
}
public static void main(String[] aryCmdArgs)
{
final String sKey = "dAtAbAsE98765432dAtAbAsE98765432"; //256 bits
}
改变或我需要使用链接2给出代码?
答
256位密钥加密的示例代码使用随机盐,这就是为什么从一次执行到下一次执行输出不同的原因。至于使用第一个(128位)示例中的代码,您只需提供一个支持长度的密钥。您只需提供算法名称(“AES”),它将根据密钥长度计算其余部分。支持的长度是128,192和256位。