混合加密文件到单个输出文件

时间:2019-05-14 13:14:31

标签: openssl

我正在寻找一种使用公共密钥(非对称算法密钥,例如RSA)加密文件的方法,该文件通常大于密钥大小。对于大于密钥大小的文件,建议的方法是使用混合加密,使用随机生成的AES密钥对文件进行加密,然后使用公共密钥对AES密钥进行加密,从而为该过程创建两个文件。

我希望此过程仅生成一个输出文件,而不是两个,最终使用用于加密和解密的单线命令

这里是一个示例,说明如何使用几个命令和两个输出文件来完成

# Generate a 256 bit (32 byte) random key
openssl rand -base64 32 > KEY_FILE

# Encrypt the key with the public RSA key
openssl rsautl -encrypt -inkey PUBLIC_KEY_FILE.pem -pubin -in KEY_FILE -out ENCRYPTED_KEY_FILE

# Encrypt the actual file with AES-CBC 
openssl enc -aes-256-cbc -salt -in FILE -out ENCRYPTED_FILE -pass file:./KEY_FILE
# Decrypt the ENCRYPTED_KEY_FILE
openssl rsautl -decrypt -inkey id_rsa.pem -in ENCRYPTED_KEY_FILE -out KEY_FILE 

# Decrypt the actual file with AES-CBC
openssl enc -d -aes-256-cbc -in ENCRYPTED_FILE -out FILE -pass file:./KEY_FILE

有什么想法可以将其合并到单个文件中,并希望通过单个命令行合并吗?

0 个答案:

没有答案