AES 128 位和 AES 256 位加密解密



我使用以下Java代码进行的AES 128位加密和解密。对于相同的密钥和数据,它每次都会给我相同的输出。

链接1:http://aesencryptign.net/#java-aes-ecryption-example

(final String strPssword = "dAtAbAsE98765432";)

对于AES 256位加密和解密,我找到了另一个Java代码。它每次都会给我不同的输出。

链接2:java中的基于密码的加密/解密

我的问题是,我是否需要为AES 128位和AES 256位进行不同的代码?还是他们一样?只有密钥大小不同?

对于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
}

或我需要使用link2中给出的代码?

256位密钥加密的示例代码使用随机盐,这就是为什么输出将从一个执行到下一个的输出不同。至于使用第一个(128位(样本中的代码,您只需提供支撑长度的键即可。您只需提供算法名称(" AES"(,它将从关键长度中弄清楚其余的。支撑长度为128、192和256位。

最新更新