C# 将文本/数据流式传输到 zip/gpg,而不是向应用程序传递文件名?

发布于 2024-07-14 05:51:59 字数 703 浏览 11 评论 0原文

我目前有一个用 C# 编写的应用程序,可以获取文件并加密 它使用 gpg.exe

我想做的是,而不是 1. 创建文件(通常来自数据库查询) 2. 加密文件 3.删除非加密文件

我想

  1. 将信息收集到内存中(到字典或列表或其他什么中)
  2. 将文本/数据流式传输到gpg.exe以最终得到加密文件 输出

我已经研究了管道流,将标准输入重定向到 gpg 进程等,但我还没有找到一种方法来欺骗 gpg.exe 接受流式文本/数据而不是硬盘驱动器上的文件。

最初想如果我可以为 gpg 做这件事,我也可以为 Zip 做这件事 以及,但我想知道这是否可能。 找到了一些关于 popen 的参考,似乎与 php 相关,但没有任何内容 对于c#。

本质上,我希望使用 text.txt 以编程方式执行以下操作 内存中的内容流式传输到应用程序,而不是实际的文件 硬盘驱动器。

C:\Program Files\GNU\GnuPG>输入 C:\test.txt | 邮编> 水管工.zip C:\Program Files\GNU\GnuPG>输入 C:\test.txt | gpg-er “mycomp_操作”> Test.pgp

感谢您提供的任何帮助:)

托尼!

I currently have an app written in C# that can take a file and encrypt
it using gpg.exe

What I'm trying to do is, instead of
1. Creating a file (from database queries usually)
2. encrypting the file
3. deleting the non-encrypted file

I want to

  1. Gather info into memory (into a dictionary or a list or whatever)
  2. stream the text/data into gpg.exe to end up with the encrypted file
    outputted

I've looked into pipestream, redirecting standard input to the gpg
process, etc, but I haven't figured out a way to trick gpg.exe into
accepting streamed text/data instead of a file on the hard drive.

Initially figured if I could do it for gpg, I could also do it for Zip
as well, but I'm wondering if it's even possible.
Found some refs to popen which seems to be php related, but nothing
for c#.

Essentially, I'm looking to do the below programatically with text.txt
being stuff in memory streamed to the app instead of an actual file on
the hard drive.

C:\Program Files\GNU\GnuPG>type C:\test.txt | zip > plubber.zip
C:\Program Files\GNU\GnuPG>type C:\test.txt | gpg -er
"mycomp_operations " > Test.pgp

Thanks for any help you may be able to give :)

Tony!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

-柠檬树下少年和吉他 2024-07-21 05:51:59

您可以使用 DotNetZip 在内存中创建 zip 文件,但我不知道它如何与 gpg 内容交互。 DotNetZip 可以进行 AES 加密,但这显然是与 PGP 或 GPG 不同的模型。

只需快速谷歌搜索即可找到
GPG 上的此提示

看起来他们在一个单独的进程中运行 gpg.exe,坐在那里等待输入。

You can use DotNetZip to create a zip file in-memory, but I don't know how that would interface with the gpg stuff. DotNetZip can do AES encryption, but that is obviously a different model from PGP or GPG.

Just a quick googly search turned up
this hint on GPG.

Looks like they run the gpg.exe in a separate process, sitting there waiting for input.

我是男神闪亮亮 2024-07-21 05:51:59

请查看 BouncyCastle C# 实现:

http://www.bouncycastle.org/csharp/

将允许 GPG 进程内加密和解密,无需外部文件。 我目前正在使用它为 BizTalk 管道组件执行相同的操作。

Please review the BouncyCastle C# implementation at:

http://www.bouncycastle.org/csharp/

This will allow GPG inprocess encryption and decryption without external files. I am currently using it to do the same thing for a BizTalk pipeline component.

月朦胧 2024-07-21 05:51:59

Benton Stark 为 GnuPG 编写了一个很好的包装器,它演示了(除其他外)如何从 Stream 中获取数据,将其通过管道传输到 GPG 可执行文件中,并将输出写回到流中 - 全部都是用 C# 编写的。

本顿回答了另一个问题,并提供了他网站的链接。 本顿写道:

您可以尝试使用我的开源免费 GnuPG C# 包装器(以及
VB.NET)。 所有代码均通过 MIT 授权,非 GPL 限制。 你
可以在 Sourceforge.net 上找到带有源代码的版本。

http://sourceforge.net/projects/starksoftopenpg/

Benton Stark has written a good wrapper for GnuPG which demonstrates (among other things) how to take data from a Stream, pipe it into the GPG executable and write the output back to a stream - all in C#.

Benton has answered another question with a link to his website. Benton writes:

You can try using my open source and free GnuPG wrapper for C# (and
VB.NET). All the code is licensed via MIT, non-GPL restrictions. You
can find the release with source code on Sourceforge.net.

http://sourceforge.net/projects/starksoftopenpg/

后eg是否自 2024-07-21 05:51:59

好吧,命名管道可以完成您所讨论的大部分内容,但说实话,这不值得……在大多数情况下,临时文件是一种合理的方法。

Well, named-pipes does most of what you are discussing, but to be honest it isn't worth it... in most cases, a temp file is a reasonable approach.

巷子口的你 2024-07-21 05:51:59

使用我们的 SecureBlackbox 组件,您可以避免调用外部程序进行 ZIP 或 PGP 操作。 这些组件使用流进行操作,不需要临时文件。

Using our SecureBlackbox components you can avoid calling external program for ZIP or PGP operations. The components operate with streams and don't need temporary files.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文