2

我想编写一个要求使用 AES-256 的 Java 方法。为此,我想对传入的 SecretKey 实例进行检查。在 RSA 的情况下,这就是我正在做的事情:-

public boolean checkKey(RSAKey key) {
    if ( key.getModulus().bitLength() == 1024 )
        return true;
    return false;
}

在AES的情况下会做以下吗?

public boolean checkKey(SecretKey key) {
    if ( key.getAlgorithm() == "AES" && key.getEncoded().length == 256 )
        return true;
    return false;
}

但我觉得这将是错误的方法,因为我会找到编码密钥的长度而不是密钥。我怎样才能找到我的 AES 密钥的长度?

4

1 回答 1

2

对于 AES 密钥,编码形式只是原始字节,因此您的检查原则上是可以的。

请记住,结果将是字节长度,而不是位长度,因此请检查== 32.

于 2013-03-04T07:59:48.957 回答