2017-04-26 189 views
-2

我正在使用以下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给出代码?

回答

1

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