AES 128位& AES 256位加密解密

时间:2017-04-26 10:27:16

标签: java encryption

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

link1:http://aesencryption.net/#Java-aes-encryption-example

(final String strPssword = "dAtAbAsE98765432";)

对于AES 256位加密和解密,我发现了另一个java代码。 它每次给我不同的输出。

link2:AES-256 Password Based Encryption/Decryption in 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中给出的代码?

1 个答案:

答案 0 :(得分:1)

256位密钥加密的示例代码使用随机盐,这就是为什么输出将从一次执行到下一次执行不同的原因。至于使用第一个(128位)样本中的代码,您只需提供一个支持长度的密钥。您只需提供算法名称(“AES”),它将从密钥长度中计算出其余部分。支持的长度为128,192和256位。