回答
答案基本上不是,没有自定义代码。
gpg可以在管道上操作,所以如果有一种简单的方式将数据破坏性地发送到管道,这可能是可行的。 But there isn't。
避免快速使用磁盘的另一个想法是一次加密块(在自定义软件中)。
while !eof:
read()
encrypt()
write()
seek()
看来,ccrypt能够就地操作,因为加密的数据是相同的长度,解密后的数据(我知道有点加密的,但是这也可能只是的block ciphers一般属性)。 GPG/PGP做类似压缩和添加标题的东西,所以输出数据的长度不会相同。如果它更短,没有问题(上述自定义代码应该工作)。如果时间更长,则需要做更多的工作来将溢出置于其他地方。
此自定义代码增加了加密和解密的复杂性(并且隐含)。
gpg通过使用原始文件名打开一个新文件并附加一个.gpg扩展名,然后将加密数据写入新文件来完成。如果一切正常,它会删除原始文件。
我不认为你会想要使用实际的就地加密,它会读取一个字节,加密它,把它写回到文件等等......如果有什么东西杀死了gpg过程中途过程?你现在有一个损坏的文件,一半的明文悬在微风中。
是的,我同意你对gpg的分析,我确认strace也一样。至于为什么我想要就地加密......我只是这样做。 :)这里有一个场景:我想加密一个400GB的文件,我有一个500GB的硬盘。我想要的其他原因:它更安全。是的,我意识到它也更危险。请参阅ccrypt(1)联机帮助页:“对于加密,这通常是所需的行为,因为不希望未加密数据的副本保留在文件系统中的隐藏位置。” – 2011-02-27 07:09:43
- 1. 使用PGP进行加密并使用GPG进行解密
- 2. 使用gpg对加密密钥进行数字签名
- 3. gpg加密和解密
- 4. 使用用户密码进行加密
- 5. Tkinter python 3 - gpg加密
- 6. 使用密钥文件进行加密,使用密码进行解密
- 7. 使用字典进行加密/解密
- 8. 使用passport.js进行密码加密
- 9. 使用主密钥进行Python加密
- 10. 使用DES和密码进行加密
- 11. 使用不同密钥大小的PGP/GPG签名和加密
- 12. 命令行GPG使用c#解密 - 密码?
- 13. 使用ansible对加密AWS .pem密钥文件进行加密
- 14. 如何让Makefile无密码地使用gpg?
- 15. 使用gnupg解密gpg文件
- 16. 如何使用PHP调用Linux的GPG加密文件与passphase
- 17. 使用JSEncrypt进行RSA加密并使用BouncyCastle(Java)进行解密
- 18. 使用.Net Framework进行AES文件加密并使用IOS进行解密
- 19. 如何使用BouncyCastle解密GPG文件而不使用密码
- 20. gpg - 导出密钥
- 21. 使用MonoTouch进行AES加密
- 22. 使用SSL进行其他API加密
- 23. 使用Rfc2898DeriveBytes进行AES 256位加密
- 24. 使用java和WP7进行AES加密
- 25. 使用CryptoJS进行上传和加密
- 26. 使用PBEWithMD5AndDES算法进行Java加密
- 27. 使用mcrypt,PHP和MySQL进行加密
- 28. 使用AES/CBC/PKCS7Padding进行JAVA加密
- 29. 使用phpseclib进行AES加密
- 30. gpg重命名加密文件
属于http://superuser.com/ – 2011-02-27 12:50:54
也许吧。我选择了stackoverflow.com,因为常见问题解答提到这里是关于“程序员常用的软件工具”的问题 – 2011-02-28 20:29:58