gpt4 book ai didi

encryption - 如何使用GnuPG和GNU并行进行大文件并行加密?

转载 作者:行者123 更新时间:2023-12-02 16:24:59 25 4
gpt4 key购买 nike

我正在尝试编写一个并行压缩/加密备份脚本用于归档使用 GNU 并行、xz 和 GnuPG。脚本的核心部分是:

tar --create --format=posix --preserve-permissions --same-owner --directory $BASE/$name --to-stdout . \
| parallel --pipe --recend '' --keep-order --block-size 128M "xz -9 --check=sha256 | gpg --encrypt --recipient $RECIPIENT" \
| pv > $TARGET/$FILENAME

没有 GnuPG 加密,它工作得很好(解压和解压工作),但添加并行加密后,无法解密并出现以下错误:

[don't know]: invalid packet (ctb=0a)
gpg: WARNING: encrypted message has been manipulated!
gpg: decrypt_message failed: Unexpected error
: Truncated tar archive
tar: Error exit delayed from previous errors.

因为未压缩的大小与gnu parallel的 block 大小相同(大约125M),我认为这与GnuPG对部分块加密的支持有关。我该如何解决这个问题?

<小时/>

仅供引用

另一个关于随机数生成的并行 gpg 加密问题

https://unix.stackexchange.com/questions/105059/parallel-pausing-and-resuming

最佳答案

打包

tar --create --format=posix --preserve-permissions --same-owner --directory $BASE/$name --to-stdout . |
parallel --pipe --recend '' --keep-order --block-size 128M "xz -9 --check=sha256 | gpg --encrypt --recipient $RECIPIENT;echo bLoCk EnD" |
pv > $TARGET/$FILENAME

拆包

cat $TARGET/$FILENAME |
parallel --pipe --recend 'bLoCk EnD\n' -N1 --keep-order --rrs 'gpg --decrypt | xz -d' |
tar tv
需要

-N1 来确保我们一次传递一条记录。 GnuPG 不支持解密多个合并记录。

关于encryption - 如何使用GnuPG和GNU并行进行大文件并行加密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46261024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com