Java 用1024字节密钥实现AES-256

Java 用1024字节密钥实现AES-256,java,spring,encryption,cryptography,aes,Java,Spring,Encryption,Cryptography,Aes,我正在尝试编写Java代码,该代码将使用1024字节的密钥执行AES-256加密/解密。我研究了互联网的实现,有很多方法可以实现 我看了以下教程: 但没有找到所需的步骤。所以我的问题是我需要什么来开始encryptiopn/解密。指定算法AES-256和密钥是否足够?我必须调用哪些API 此外,我还计划编写一个实用程序类,其中包含两个公开用于加密和解密的方法。我计划在构造函数中初始化所有这些设置。因此,建议我在我的Spring web应用程序中使用此类的最佳方式。。它们分别称为AES-128、A

我正在尝试编写Java代码,该代码将使用1024字节的密钥执行AES-256加密/解密。我研究了互联网的实现,有很多方法可以实现

我看了以下教程:

但没有找到所需的步骤。所以我的问题是我需要什么来开始encryptiopn/解密。指定算法AES-256和密钥是否足够?我必须调用哪些API

此外,我还计划编写一个实用程序类,其中包含两个公开用于加密和解密的方法。我计划在构造函数中初始化所有这些设置。因此,建议我在我的Spring web应用程序中使用此类的最佳方式。

。它们分别称为AES-128、AES-192和AES-256。所以不能将1024字节的密钥用于AES

AES块大小—您所描述的用于编码的数据分组的大小—对于AES始终为128位。Rijndael是AES的一个子集,除了128位块外,它还支持256位块。尚未为1024字节的密钥定义Rijndael和AES


如果您有这么大的密钥材料,您可以使用类似SHA-256的散列或类似HKDF的适当KDF将其减少到256位。显然,这会将安全级别降低到256位,但这仍然足够。AES没有为较大的密钥定义的原因是,传统计算机永远无法强制执行256位密钥。请参阅crypto.se。

AES-256的名称中不是有256位,因为密钥大小为256位吗?是吗?我认为256是数据分组编码的大小。1024是我们使用的密钥大小。256是密钥大小…如果不确定,请查阅标准。使用加密技术,在开始实施任何操作之前,您首先需要清楚地了解您正在做什么。用例、攻击向量和密钥管理方案是创建或选择协议之前的最低要求,更不用说实现协议了。有不同的实现方式。我想和一个简单的人在一起。我更具体地想知道输入将是什么,比如key、keysize等,我可以使用什么Java API?@user4035943使用支持AES-GCM的东西。绝对不要重复使用密钥对。