我有一个备份,压缩和加密MySQL转储的基本脚本:
mysqldump --events --routines --triggers --add-drop-database \
--compress --hex-blob --opt --skip-comments --single-transaction \
my-database | \
xc -c | \
/usr/bin/openssl smime \
-encrypt \
-aes256 \
-binary \
-out /mnt/test.sql.xz.enc \
-outform DER /path/to/cert.pem
要加密,基本上使用此命令:
openssl smime -encrypt -aes256 -binary -out test.sql.xz.enc -outform DER cert.pem
要正常解密我使用:
openssl smime -decrypt -in test.sql.xz.enc -binary -inform DEM -inkey private.key -out sql.xz
在此过程中,这两种方式一直在加密和解密,但现在压缩后的数据已达到 1.5GB ,而解密时我收到此错误:
Error reading S/MIME message
34380825992:error:07069041:memory buffer
routines:BUF_MEM_grow_clean:malloc failure:/usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/buffer/buffer.c:150:
34380825992:error:0D06B041:asn1 encoding routines:ASN1_D2I_READ_BIO:malloc failure:/usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/asn1/a_d2i_fp.c:239:
我已将文件移至biger实例(4核,8GB内存)但仍有问题。
因此,想知道在使用smime
选项加密时是否存在大小限制,以及可以使用哪些选项来加密/解密大小为千兆字节的文件。
目前,我正在使用选项-stream
进行测试似乎正在运行:
openssl smime -encrypt -aes256 -stream -binary -out test.sql.xz.enc -outform DER cert.pem
但不知道会有什么限制,所以任何可能的替代方案或想法都非常受欢迎。