首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用gpg进行就地加密

问使用gpg进行就地加密
EN

Stack Overflow用户
提问于 2011-02-27 14:32:46
回答 2查看 3.4K关注 0票数 2

有没有可能强制gpg进行就地加密?换句话说,用加密数据覆盖源(未加密)文件?

这就是ccrypt(1)的默认操作方式。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-08 02:10:53

答案基本上是否定的,没有自定义代码就不行。

gpg可以在管道上操作,所以如果有一种简单的方法将数据破坏性地发送到管道,这可能是可行的。But there isn't。

防止磁盘快速耗尽的另一个想法是一次加密块(在自定义软件中)。

代码语言:javascript
复制
while !eof:
  read()
  encrypt()
  write()
  seek()

看起来ccrypt能够就地操作,因为加密的数据与解密的数据长度相同(我对crypto知之甚少,但这可能只是block ciphers的一个通用属性)。GPG/PGP会做一些事情,比如压缩和添加报头,所以输出的数据不会是相同的长度。如果它更短,没问题(上面的自定义代码应该可以工作)。如果它更长,则需要做更多的工作才能将溢出放在其他地方。

这个自定义代码增加了加密和解密的复杂性(和模糊性)。

票数 3
EN

Stack Overflow用户

发布于 2011-02-27 14:46:53

gpg通过使用原始文件名打开一个新文件并附加一个.gpg扩展名,然后将加密数据写到新文件中。如果一切正常,它会删除原始文件。

我认为你不会想要使用真正的就地加密,在这种情况下,它会读取一个字节,加密它,将它写回文件中,等等。如果gpg进程在中途被杀死,会发生什么?您现在得到了一个损坏的文件,其中一半的明文在微风中摇摆。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5131810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档