只是一个问题,如果我的方式是可以的。 我在java中创建了一个filecrypter,我使用随机生成的AES密钥并用它加密文件。 AES密钥将使用RSA加密,并且还将与随机IV一起存储在outpufile中。 在解密时,我读取前n个字节(在我的情况下为256字节)并使用我的私有RSA密钥对其进行解密,然后使用AES密钥对文件的其余部分进行解密。
我的主要问题是可以将加密的AES密钥包含在加密文件中吗?这对我来说似乎很舒服,因为我加密的每个文件都有自己的随机密钥,包括用RSA密钥加密。 这是不好的做法吗?
答案 0 :(得分:1)
AES的执行速度比RSA快(对于相同的密钥大小) 所以你可以创建一个像贝娄那样的结构......
------------------------------------------------
| | |
| IV | Your encrypted data |
| | |
------------------------------------------------
您可以使用加密数据存储您的IV
假设你的IV是byte []的20大小,而不是用加密数据存储它
当您想要解密数据时,首先从阵列获取初始20个字节而不是其他数据是您的加密数据。
您知道IV的大小..因此您可以轻松地从整个数据中分离IV和加密数据( IV + EncryptedData)。
以上不是您问题的确切解决方案 但你可以使用上面一个....