AES密钥包装加密

5

我需要在密钥包装模式下使用加密算法AES。是否有一些开源库或实现可以提供帮助?

重要的是,它必须是密钥包装模式。


你是在指RFC 3394吗?你的问题不够清晰。 - Duncan Jones
3个回答

9

标准的SunJCE提供商提供了RFC 3394的实现。只需使用AESWrap算法:

Cipher c = Cipher.getInstance("AESWrap", "SunJCE");
c.init(Cipher.WRAP_MODE, secretKey);
byte[] result = c.wrap(someKey);

2

BouncyCastle支持使用AESWrapEngine进行AES密钥封装。

您可以查看这篇StackOverflow帖子以了解更多关于BouncyCastle的示例。唯一的区别是您将指定AESWrapEngine而不是AESEngine


0

是的,有一个名为Bouncy Castle的库可用,您可以使用该库将您的数据加密密钥使用AES算法进行包装,在WRAP_MODE中,下面的代码片段可能会对您有所帮助。

public static byte[] wrapKey(SecretKey key, SecretKey keyToWrap) throws GeneralSecurityException {
        Cipher cipher = Cipher.getInstance("AESKW", "BCFIPS");

        cipher.init(Cipher.WRAP_MODE, key);

        return cipher.wrap(keyToWrap);
    }

    public static SecretKey unwrapKey(SecretKey key, byte[] wrappedKey) throws GeneralSecurityException {
        Cipher cipher = Cipher.getInstance("AESKW", "BCFIPS");

        cipher.init(Cipher.UNWRAP_MODE, key);

        return (SecretKey) cipher.unwrap(wrappedKey, "AES", Cipher.SECRET_KEY);
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接